知识点:1、动态action
2、值栈
3、web中怎么拿web对象
1、动态action的实现
1.1、直接在struts.xml中配置action节点的method属性为action中的方法名
1.2、 使用通配符来匹配对应的方法 * { }(代码如下)
struts.xml代码:
jsp代码:
1.3、在页面上的form表单使用action!method来指定action中的特定方法
struts.xml代码:
jsp页面代码:
2、值栈(存放值的栈区)
2.1、它存放的作用域是request
2.2、
3、web中怎么拿web对象
3.1、非IOC
3.2、IOC(set注入)实现ServletRequestAware接口
源码下载请点这里:
2、值栈
3、web中怎么拿web对象
1、动态action的实现
1.1、直接在struts.xml中配置action节点的method属性为action中的方法名
<struts>
<package name="mypackage" extends="struts-defaut">
<action name="test" class="cn.zhuojingxinxi.web.TestAction" method="save">
</action>
</package>
package cn.zhuojingxinxi.web;
public class TestAction {
public String execute(){
System.out.println("this is execute method```");
return null;
}
public String save(){
System.out.println("this is save method```");
return null;
}
public String update(){
System.out.println("this is update method```");
return null;
}
public String delete(){
System.out.println("this is delete method```");
return null;
}
}
1.2、 使用通配符来匹配对应的方法 * { }(代码如下)
struts.xml代码:
<struts>
<package name="mypackage" extends="struts-default">
<action name="test_*" class="cn.zhuojingxinxi.web.TestAction" method="{1}">
</action>
</package>
jsp代码:
<body>
<form action="test.action" method="post">
<input type="submit" value="提交" />
</form>
<form action="test_save.action" method="post">
<input type="submit" value="保存" />
</form>
<form action="test_update.action" method="post">
<input type="submit" value="更新" />
</form>
<form action="test_delete.action" method="post">
<input type="submit" value="删除" />
</form>
</body>
1.3、在页面上的form表单使用action!method来指定action中的特定方法
struts.xml代码:
<action name="test" class="cn.zhuojingxinxi.web.TestAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
jsp页面代码:
<body>
<form action="test.action" method="post">
<input type="submit" value="提交" />
</form>
<form action="test!save.action" method="post">
<input type="submit" value="保存" />
</form>
<form action="test!update.action" method="post">
<input type="submit" value="更新" />
</form>
<form action="test!delete.action" method="post">
<input type="submit" value="删除" />
</form>
</body>
2、值栈(存放值的栈区)
2.1、它存放的作用域是request
2.2、
3、web中怎么拿web对象
3.1、非IOC
public String save(){
//通过当前action的上下文拿值栈
ValueStack valueStack= ActionContext.getContext().getValueStack();
// 通过值栈的上下文拿值
//1、获得请求对象(HttpServletRequest)
HttpServletRequest request= (HttpServletRequest) valueStack.getContext().get(StrutsStatics.HTTP_REQUEST);
request.setAttribute("hello", "值存入请求");
//2、获得请求对象
HttpServletRequest request1= (HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
//3、获得HttpServletRequest对象
HttpServletRequest request2= ServletActionContext.getRequest();
System.out.println("this is save method```");
return null;
}
3.2、IOC(set注入)实现ServletRequestAware接口
private HttpServletRequest httpServletRequest;
public void setServletRequest(HttpServletRequest arg0) {
this.httpServletRequest=arg0;
}
源码下载请点这里: