Struts2 处理传入多个值
1,处理数目不定的字符串;
2,处理数目不定的 JavaBean 对象;
public class HobbyAction implements Action {
private String[] hobby;
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
@Override
public String execute() throws Exception {
System.out.println("执行了Action的默认方法");
if (hobby != null) {
for (String h : hobby) {
System.out.println(h);
}
}
return SUCCESS;
}
struts.xml 配置
一,pageckage 配置
name 包名
extends 继承
namespace 包命名空间
abstract 抽象包
二,action 配置
name action 名
class 处理类
method 方法
三,分模块配置方法
<include file="" ></include> 适用于多个模块
<struts>
<include file="cheliang.xml"></include>
<include file="zichan.xml"></include>
</struts>
<struts>
<package name="cheliang" namespace="/cheliang" extends="struts-default">
<action name="cheliang" class="com.java1234.action.CheLiangAction">
<result name="success">${pageContext.request.contextPath}/success.jsp</result>
</action>
</package>
</struts>
四,使用通配符<action name="student_*" class="com.java1234.action.StudentAction" method="{1}">
<result name="success">success.jsp</result>
</action>
同时使用两个通配符<action name="*_*" class="com.java1234.action.{1}Action" method="{2}">
<result name="success">success.jsp</result>
</action>
动态方法调用开启动态方法调用:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="manage" namespace="/" extends="struts-default">
<action name="student" class="com.java1234.action.StudentAction">
<result name="success">success.jsp</result>
</action>
<action name="grade" class="com.java1234.action.GradeAction">
<result name="success">success.jsp</result>
</action>
</package>
</struts>
<body>
<h1>通配符</h1>
<a href="Student_list" target="_blank">学生信息查询</a>
<a href="Student_add" target="_blank">学生信息添加</a>
<a href="Student_update" target="_blank">学生信息修改</a>
<a href="Student_delete" target="_blank">学生信息删除</a>
<br/><br/>
<h1>动态方法调用</h1>
<a href="student!list" target="_blank">学生信息查询</a>
<a href="student!add" target="_blank">学生信息添加</a>
<a href="student!update" target="_blank">学生信息修改</a>
<a href="student!delete" target="_blank">学生信息删除</a>
</body>
Action 生命周期Struts2的Action的生命周期是:Struts2为每个请求都重新初始化一个Action的实例。
输出this可以查看每次的结果都不一样!
result 配置
1,type 默认是 dispatcher 内部转发;
2,type 为 redirect 重定向;
3,type 为 chain 链条;
4,type 为 redirectAction 重定向到 action;
上面 4 个常用,一定要掌握;
其他 freemarker freemarker 模版
httpheader 返回一个已配置好的 HTTP 头信息响应
stream 将原始数据作为流传递回浏览器端,
velocity 呈现 Velocity 模板
xslt 该 XML 可以通过 XSL 模板进行转换
plaintext 返回普通文本类容
result 全局配置
<global-results>
<result name="error">error.jsp</result>
</global-results>
现在action中寻找 然后会在global-results中寻找!