20151209struts简单传值

Struts2传值——简单的登录模块的实现


页面到action类的传值(简单传值)

  • 利用html表单标签传值.
    <form>
        用户名<input type="text" name="username"/>
        密码<input type="password" name="password"/>
        <input type="submit" value="提交"/>
    </form>
  • 利用struts标签传值
    <s:form action="login">
        <s:textfield name="username" key="用户名"></s:textfield>
        <s:password name="password" key="密码"></s:password>
        <s:submit value="提交"></s:submit>
    </s:form>

对比两种表单的写法很容易明白struts表单标签的基本用法,s:textfield对应input type=”text”,s:password对应input type=”password”,s:submit对应input type=”submit”.

注意struts的textfield和password标签中有key属性,此属性会被struts处理为在输入框前的文本,并且加上冒号(:).submit标签不要写key属性,按钮文本用value定义即可.(写key属性的话会提示找不到action类中对应的成员变量,赋值失败)

  • 接下来是action类的编写.
package com.hj.struts.action;

import com.opensymphony.xwork2.ActionSupport;

public class Login extends ActionSupport
{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private String username;
    private String password;
    private String info;
    public String getUsername()
    {
        return username;
    }
    public void setUsername(String username)
    {
        this.username = username;
    }
    public String getPassword()
    {
        return password;
    }
    public void setPassword(String password)
    {
        this.password = password;
    }
    public String getInfo()
    {
        return info;
    }
    public void setInfo(String info)
    {
        this.info = info;
    }

    public String execute()
    {
        if(username.equals("") || password.equals(""))
        {
            info = "客官,别瞎点!还没输入完呢";
            return LOGIN;
        }
        if(username.equals("hangjian") && password.equals("123"))
        {
            info = "欢迎您," + username;
            return SUCCESS;
        }
        info = "亲,输入错误,请重新输入";
        return LOGIN;
    }


}

action类的编写比较简单,多数采用继承actionsupport类来实现.在类中创建与表单提交来的数据的name相同的成员变量并且定义get set 方法,Struts框架会利用反射为成员变量赋值,在execute()方法中直接调用即可.
* 最后是struts.xml文件的配置.

   <package name="default" namespace="/" extends="struts-default">

        <action name="login" class="com.hj.struts.action.Login">
            <result>
              /WEB-INF/pages/welcome.jsp  
            </result>
            <result name="login">
              /index.jsp  
            </result>
        </action>
    </package>

此配置将对此项目/login的访问映射到com.hj.struts.action.Login来处理,如果返回的逻辑视图为success则跳转到/WEB-INF/pages/welcome.jsp视图;如果返回login逻辑视图则跳转回登录页.


action类到页面的传值(简单传值)

见上面action类的代码,只要将想要返回的值定义为成员变量,提供get 和 set 方法并且对其进行赋值,就可以在页面上得到传来的值

在页面中加入如下代码即可.

<!-- 用struts标签获得实例变量 -->
    <s:property value="info"/>

以上方式可以实现简单页面与action类之间的简单值的传递(字符串,基本类型之类),实际上struts可以实现更复杂的传值,例如自定义的类,数组,集合对象等等.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值