深入浅出struts2(二)


上一篇文章刚刚说到action注入属性住的问题,现在来详细地说一下

注入action属性值的方法有多种:

第一种:使用表单(form)注入

html代码片段:

<form action="loginAction" method="post">
	用户名<input type="text" name="user.username"><br>
	密码<input type="password" name="user.password"><br>
	<input type="submit" value="确认"/>
</form>
action的实现代码片段:
public class loginAction extends ActionSupport {
    private User user;
    
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String login() throws Exception
    {
        //有关login的业务逻辑
    }
}
其工作机制就是:首先http协议收集表单中各输入域的值;然后struts2框架按照表单中各输入域的name属性名称与action属性名称进行匹配;调用显影的setter方法实现属性值的注入。

可能有人好奇,struts2框架具体是怎么实现为action属性值赋值的。大家应该知道,action调用前后要经过一系列的拦截器,params拦截器就是实现这个功能的(框架,说的通俗一点就是把大量的web应用程序中通用的代码抽取出来,制作成框架,就拿params拦截器举例子,是不是比你写要方便多了)。

仔细看上面的代码,你会发现,我并没有把action的属性设置成各个具体的属性,而是利用了java bean对象(基于OGNL的类型转换机制),记得修改form表单单中输入域的name。利用form表单也是平时最常用的为action注入属性值的方式。


第二种:使用xml文件

<package name="default" namespace="/" extends="struts-default">
    	<action name="loginAction" class="com.action.UserAction">
<span style="white-space:pre">		</span><span style="color:#ff0000;"><param name="user.username">Aomr</param></span>
<span style="color:#ff0000;"><span style="white-space:pre">		</span><param name="user.password">123</param></span>
    		<result name="teacher">/teacher.jsp</result>
    		<result name="error">/error.jsp</result>
    	</action>
</package>


第三种:使用查询字符串参数

举个例子就能看懂,http://localhost:8080/ch/loginAction?user.username=admin&user.password=123






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值