使用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);
}
}
<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);
}
}
相关阅读 更多 +