文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用Struts

使用Struts

时间:2007-01-01  来源:liulibo

1.使用form-bean(继承ActionForm类)
 <form-beans>
  <form-bean name="formBean名" type="formBean类路径" />
 </form-beans>
*********************************************************
2.配置Action实例(继承Action)
 <action-mappings>
  <action path="/相对路径"  type="Action子类路径" name="formBean名" scope="page/request/session"
     validate="true"  input="出错时跳转页面的绝对路径">
   <forward name="匹配前缀" path="转发的绝对路径" redirect="是否使用重定向"/>
  </action>
 </action-mappings>
********************************************************* 
3.异常处理机制(xxx_zh.properties)
 资源文件:
  0>xxx_zh.properties文件(native2ascii 文件名:中文需要进行转码xxx_zh.properties)
   errors.header=开始显示
   errors.footer=最后显示
   key=value
   key=value
——————————————————————————————————————————————————
1方法一:一般用于校验格式validation
 1.(ActionForm类validate()方法返回ActionErrors对象-(key,ActionMessage对象)
  -ActionMessage("key")中的key串必须和资源文件中的key串一致)
 2. struts-config.xml中添加
  <form-beans>
    <form-bean name="实例名" type="覆盖validate()方法的ActionForm子类" />
  </form-beans>
  <action   path=""  type=""  name="实例名" scope="request"
            validate="true"  input="/异常发生转发的PAGE">
         ——————————————————————————————
         STRUTS提供的校验validation
  struts-config.xml文件中指定初始化文件validator-rules.xml,validation.xml和资源文件
   validation.xml中
   <form name="userLoginForm"> //form-bean实例
              <field property="userName" depends="required, minlength, maxlength">//form-bean属性,约束(必须,最大值,最小值)
                      <arg0 key="user name" resource="false"/>//不查找资源文件
                      <arg1 key="${var:minlength}" name="minlength" resource="false" />
                      <arg1 key="${var:maxlength}" name="maxlength" resource="false" />
                      <var>//定制约束
                       <var-name>minlength</var-name>
                       <var-value>3</var-value>
                      </var>
                     <var>
                       <var-name>maxlength</var-name>
                       <var-value>6</var-value>
                      </var>         
              </field>
              <field property="password" depends="required">
                      <arg0 key="password" resource="true"/>
              </field>
          </form>
 最后,复制validator-rules.xml中已定义的错误提示信息至资源文件中
 .校验PAGE需要动态获取资源文件信息
2方法二:一般用于处理异常跳转
 1.自定义DispatchAction子类,有异常往上抛不进行处理
  
 2.struts-config.xml中forward标签上添加
  <exception key="资源文件KEY" path="/异常发生转发的PAGE" type="异常类型" />
  
 3.struts-config.xml中指定资源文件路径
  <message-resources parameter="*.MessageResource" />
  
 4.动态获取资源文件信息
  <%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
   
  1。  <html:errors />
  
  2。  <html:messages id="msg">${msg}</html:messages>
  
 5.静态获取资源文件信息(.properties)
   <%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <bean:message key="配置文件中的key串" />
*********************************************************
4.TOKEN机制
 1.saveToken(request)后重新载入PAGE(实质:回写TOKEN值,用隐藏文本域保存)
 2.isTokenValid(request, true)提交判断是否有效 
 注:
 超链接需要加<html:link href="" transaction="true">属性
*********************************************************
5.文件上传
 1.指定类型和处理PAGE
  <form name="UploadForm" enctype="multipart/form-data" method="post" action="upload_action.jsp"> 
  <input type="file" name="File1" size="20" maxlength="20">
 2.上传处理
 <%@ page import="org.apache.commons.fileupload.*" %> 
 
 String temp=getServletContext().getRealPath("/")+"temp";   //临时目录
 String loadpath=getServletContext().getRealPath("/")+"uploadfiles"; //上传文件存放目录
 
 DiskFileUpload fu = new DiskFileUpload();
 fu.setSizeMax(10*1024*1024);   // 设置允许用户上传文件大小,单位:字节
 fu.setSizeThreshold(4096);   // 设置最多只允许在内存中存储的数据,单位:字节
 fu.setRepositoryPath(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
 
 //开始读取上传信息
 List fileItems = fu.parseRequest(request);
 Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
 
 while (iter.hasNext())
 {
  FileItem item = (FileItem) iter.next();
  if (!item.isFormField()) // 忽略其他不是文件域的所有表单信息
  {
   String name = item.getName();//获取上传文件名,包括路径
   name=name.substring(name.lastIndexOf("\\")+1);//从全路径中提取文件名
   // out.println(name);
   long size = item.getSize();
   if((name==null||name.equals("")) && size==0)
   continue;
   out.println(item.getName()+"    Size="+item.getSize()+"<br>");//输出上传文件信息
   
   File fNew= new File(loadpath, name); 
   
   item.write(fNew);   
  }
 }
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载