首页 > 代码库 > struts2中 模型驱动(model)action用法
struts2中 模型驱动(model)action用法
Struts2的Action属于MVC模型层,Action中的方法代表业务逻辑,Action中的属性代表请求中的参数,当页面请求参数较多的时候,把过多的参数对象的属性定义在Action中不太符合Struts所倡导的松耦合原则,所以我们推荐单独用JavaBean来封装参数,在Action中为JavaBean赋值,这就是ModelDriven的Action。
模型驱动的Action要求Action实现ModelDriven接口,假如登录页面需要传输参数name和password,我们把这2个参数封装在一个数据的JavaBean中,然后在Action中定义该JavaBean为Model即可。
注意:JavaBean中成员变量的名字 和 登陆也面标签的name属性要保持一致。
代码如下:
UserInfo(Java Bean)代码
package model;public class UserInfo { private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
html登陆页面主要代码
<html> <body> <form action="./user/getUser.action"> 用户名:<input type="text" name="name"/></p> 密码:<input type="password" name="password"/></p> <input type="submit" name="submit" value="提交"/> </form> </body></html>
modelAction代package modelAction
import model.UserInfo;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;@SuppressWarnings("serial")public class modelAction extends ActionSupport implements ModelDriven<UserInfo> { //private UserInfo model = new UserInfo(); private UserInfo userInfo = new UserInfo(); @Override public String execute() throws Exception { System.out.println("modelAction..execute()"); return "success"; }
@Override public UserInfo getModel() { // TODO Auto-generated method stub return userInfo; }}
struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <package name="user" namespace="/user" extends="struts-default"> <action name="getUser" class="modelAction.modelAction"> <result name="success">/MyJsp.jsp</result> </action> </package></struts>
action跳转页面myjsp.jsp中显示用户名 密码
当请求该Action的时候,请求中的参数会自动填充到模型Userinfo的属性中,当然需要参数名和属性名一样,到跳转的页面上利用Struts2标签<s:property value="http://www.mamicode.com/username" />可以取出模型Userinfo中的属性username。在ModelDriven接口中的方法getModel()必须实现,通过它告诉系统模型的具体对象是什么。
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP ‘MyJsp.jsp‘ starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css"> --> </head> <body> username:<s:property value="name" /> </body></html>
struts2中 模型驱动(model)action用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。