您的位置:首页 > 编程语言 > Java开发

Struts2数据封装机制

2015-06-24 20:17 393 查看
Struts2 属性驱动和模型驱动 帮助我们完成了 数据自动获取 数据自动封装

1、使用 属性驱动 来完成 数据自动获取和数据自动封装:

index.jsp:表单的填写

<body>
<form action="<%=path %>/loginAction" method="post">
姓名:<input name="name" type="text">
密码:<input name="pwd" type="password">
<input value="提交" type="submit">
</form>
</body>


LoginAction的实现:(属性名一定要和jsp表单的name相同。重写execute返回“success”)

package com.qyy.action;

public class LoginAction{
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String execute() throws Exception {
System.out.println(name);
System.out.println(pwd);
return "success";
}
}


struts.xml的填写:

<struts>
<package name="userlogin" extends="struts-default">
<!-- 第一个action是属性驱动 完成数据的自动获取和自动封装 -->
<action name="loginAction" class="com.qyy.action.LoginAction">
<result name="success">/index.jsp</result>
</action>

<!-- 第二个action是模型驱动 完成数据的自动获取和自动封装 -->
<action name="muserlogin" class="com.qyy.action.MloginAction">
<result name="success">/index.jsp</result>
<!-- 以下两个是拦截器 -->
<interceptor-ref name="modelDriven"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>


2、使用 模型驱动 来完成 数据自动获取和数据自动封装:

index.jsp:表单的填写

<body>
<form action="<%=path %>/muserlogin" method="post">
姓名:<input name="name" type="text">
密码:<input name="pwd" type="password">
<input value="提交" type="submit">
</form>
</body>


实例对象的bean:

package com.qyy.impl;

public class Users {
private String name;
private String pwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}

}


MloginAction的实现:(属性名一定要和jsp表单的name相同。实现接口ModelDriven<T>,其中T是bean的类名。一定要先new一个bean的对象,然后实现抽象方法getModel(),返回实例对象return us。 这样才能将jsp表单的内容初始化到对象中,然后才可以重写execute并返回“success”。)

package com.qyy.action;

import com.opensymphony.xwork2.ModelDriven;
import com.qyy.impl.Users;

public class MloginAction implements ModelDriven<Users>{
private Users us = new Users();

public String execute() throws Exception {
System.out.println(us.getName());
System.out.println(us.getPwd());
return "success";
}

@Override
public Users getModel() {
// TODO Auto-generated method stub
return us;
}

}


3、标签实现模型驱动

SloginAction的实现:(也是要先声明一个Uesrs的对象,但是不需要new来实例化。也不需要实现接口。但是需要getter和setter方法。)

package com.qyy.action;

import com.qyy.impl.Users;

public class SloginAction{

private Users us;

public Users getUs() {
return us;
}

public void setUs(Users us) {
this.us = us;
}

public String execute() throws Exception {
System.out.println("标签实现。。。");
System.out.println(us.getName());
System.out.println(us.getPwd());
return "success";
}
}


index.jsp表单填写:

先html之上写好标签:

<%@ taglib prefix="s" uri="/struts-tags" %>


然后填表单:注(用struts标签的时候,action的“”里面不能写<%=path%> )

表单中的us就是指SloginAction类中的us。us点后面的name和pwd就是Users的属性名。一定要一样

<body>
<s:form namespace="" action="suserlogin" method="post">
<s:textfield name="us.name" label="用户名"></s:textfield>
<s:password name="us.pwd" label="密码"></s:password>
<s:submit value="提交"></s:submit>
</s:form>
</body>


struts.xml的配置:

<!-- 第三个action是标签实现模型驱动-->
<action name="suserlogin" class="com.qyy.action.SloginAction">
<result name="success">/index.jsp</result>
</action>


在struts中进行如下配置后,jsp的格式就可以用自己的布局设置

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: