Struts2学习笔记(3)
<!-- value值不需要后缀名,可以放多个,用英文逗号隔开 -->
<constant name="struts.custom.i18n.resources"value="my_message"/>value值的就是资源文件的路径。
1.6上传多个文件
private File[]upload;
private String[]uploadContentType;
private String[]uploadFileName;
收集参数时,可以使用数组,也可以使用集合List。
表单中的<s:file>标签的name属性值要一样,这里全为upload。
<s:form action="UploadAction"method="post"enctype="multipart/form-data">
<s:textfieldlabel="用户名"name="username"/>
<s:filelabel="上传文件1"name="upload"/>
<s:filelabel="上传文件2"name="upload"/>
<s:filelabel="上传文件3"name="upload"/>
<s:submitvalue="提交"/>
</s:form>
1.6将参数注入Action中
在XxxAction中,有个字段叫uploadPath,提供setter和getter方法。在struts.xml文件中可以为其赋值,在对应的action节点中添加param节点。如:
<action name="UploadAction"class="com.maple.upload.action.UploadAction"method="execute">
<resultname="success"type="dispatcher">/WEB-INF/upload_success.jsp</result>
<!-- 为该action的uploadPath属性注入值 -->
<paramname="uploadPath">D:/Java_Develop/My_Projects/MDay32/WebContent/WEB-INF/upload</param>
</action>
2.拦截器Interceptor
2.1概念
Struts2 拦截器在访问某个 Action 方法之前或之后实施拦截, Struts2 拦截器是可插拔的。
拦截器栈(InterceptorStack): 将拦截器按一定的顺序联结成一条链. 在访问被拦截的方法时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被依次调用,类似于Filter在web.xml文件中的配置顺序调用。
每个拦截器都是实现了 com.opensymphony.xwork2.interceptor.Interceptor接口的Java 类。
init: 该方法将在拦截器被创建后立即被调用, 它在拦截器的生命周期内只被调用一次. 可以在该方法中对相关资源进行必要的初始化。
interecept: 每拦截一个动作请求,该方法就会被调用一次。
destroy: 该方法将在拦截器被销毁之前被调用, 它在拦截器的生命周期内也只被调用一次。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>