struts2 获取表单数据

xiaoxiao2025-07-12  9

 

一、属性驱动

提交信息表单页面  login.jsp

<form action="login"> userName:<input type="text" name="userName"> userPsw:<input type="text" name="userPsw"> <input type="submit" value="login"> </form>

注意两个input的标签name为“userName”、“userPsw”,则其表单处理类,此处是LoginAction类应有对应名称的属性以及set方法


action处理类   LoginAction.java

package com.action; import com.opensymphony.xwork2.Action; /** * @author WenSe * @date 2018/10/25 13:40 */ public class LoginAction { private String userName; private String userPsw; public String login(){ System.out.println(userName + "/"+userPsw); return Action.SUCCESS; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPsw() { return userPsw; } public void setUserPsw(String userPsw) { this.userPsw = userPsw; } }
action处理类提供get方法则页面可通过el表达式获取属性值

获取信息页面 success.jsp

<body> 欢迎${userName} </body>

struts.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="login" namespace="/" extends="struts-default"> <action name="login" class="com.action.LoginAction" method="login"> <result name="success">/success.jsp</result> </action> </package> </struts>

 

二、对象驱动

当把属性都包装为在一个类中时,就可以使用对象驱动模型,在上面的基础上,需做以下修改

新建user类,并提供无参构造方法 public class User { private String name; private String psw; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsw() { return psw; } public void setPsw(String psw) { this.psw = psw; } }

     2.action处理类声明user变量(不创建),并提供get、set方法

public class LoginAction { private User user; public String login(){ System.out.println(user.getName() + "/"+user.getPsw()); return Action.SUCCESS; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }

    3.jsp页面form表单中的相应input的name属性值改为  处理类中的对象.属性 

<form action="login"> userName:<input type="text" name="user.name"> userPsw:<input type="text" name="user.psw"> <input type="submit" value="login"> </form>

   jsp页面要获取对象属性值时,也要用  处理类中的对象.属性  格式

<body> 欢迎${user.name} </body>

 

三、模型驱动

在jsp中的属性前要加对象限定,显得臃肿,此时,可用模型驱动,在上面的基础上,再做修改即可

 1.处理类 实现 ModelDriven<T> 接口,实现getModel方法,并创建User对象

public class LoginAction implements ModelDriven<User> { private User user; @Override public User getModel() { return user = new User(); } public String login(){ System.out.println(user.getName() + "/"+user.getPsw()); return Action.SUCCESS; } }

 2.此时jsp页面中,就可以直接写属性名称,类似属性驱动时

<form action="login"> userName:<input type="text" name="name"> userPsw:<input type="text" name="psw"> <input type="submit" value="login"> </form> <body> 欢迎${name} </body>

 

转载请注明原文地址: https://www.6miu.com/read-5032968.html

最新回复(0)