struts2从零开始(二)

知识点:1、动态action
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;

}


源码下载请点这里:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值