struts2步骤

1、添加jar包
2、在web.xml中配置过滤器
<filter>
       <filter-name>struts2</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
3、编写struts.xml文件
4、编写action
普通模式,在action中直接指定method=""
基于请求参数
http://localhost:8080/struts2/user!add
http://localhost:8080/struts2/user?method:add
基于通配符
5、action向jsp传值
1、   私有属性和其对应的set/get方法
在跳转的页面通过 ${私有属性} EL表达式获取
2、//第二种,通过ActionContext.getContext()方法
ActionContext.getContext().put("abc", "123"); => <s:property value="#abc" />
3、//第三种传值方式,通过servlet的api传值
ServletActionContext.getRequest().setAttribute("ccc", "hello"); =>
<s:property value="#request.ccc" />
6、jsp向action中传值
1、私有属性 和其对应的set/get方法
http://localhost:8080/struts2/user_addInput?username=abc&password=123
private String username;
private String password;
set/get方法
System.out.println(username+"="+password);
7、OGNL表达式:

8、ValueStack:
件图片
9、ModelDriven:

10、struts2的文件上传: (用到了common-fileupload、common-io 包)
(1)、页面
<form action="msg_fileUpload" method="post" enctype="multipart/form-data">
title:<input name="title" type="text"/><br>
<input type="file" name="photo" /> <br>
<input type="file" name="photo" /> <br>
<input type="file" name="photo" /> <br>
<input type="file" name="photo" /> <br>
<input type="submit" value="提交" >
   </form>
(2)、Action中获取
private File[] photo;
private String[] photoFileName;
private String[] photoContentType;
..
set/get方法
..

public String fileUpload(){
for(int i=0;i<photo.length;i++){
File p = photo[i];
String name = photoFileName[i];
String type = photoContentType[i];
System.out.println(name+"\"+type);
FileUitls.copyFile(p,new File("d:/ttest/"+name));
}
}
11、拦截器:
1.写一个类,实现abstractintercptor抽象类
2.在intercept 写业务
3.在struts.xml中配置intercptor:
<interceptors>
<interceptor name="helloInterceptor" class="cn.xxx.struts2.interceptor.HelloInterceptor"></interceptor>
<interceptor-stack name="myStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="helloInterceptor" />
</interceptor-stack>
</interceptors>
<!--
<default-interceptor-ref name="myStack" ></default-interceptor-ref>
-->
4.在struts.xml中的action引用:
<action name="msg_*" class="cn.xxx.struts2.action.MessageAction" method="{1}">
<interceptor-ref name="myStack" />
<result name="success" >/WEB-INF/message/fileUpload.jsp</result>
<result name="{1}" >/WEB-INF/message/{1}.jsp</result>
</action>

你可能感兴趣的:(struts)