Struts2的简单使用(二)页面向action传值
来源:互联网 发布:网络教育取消学籍 编辑:程序博客网 时间:2024/05/16 11:08
在这里我要写一下在action中如何接受页面传过来的参数~
有三种方式:
1.同名参数
例如:
通过页面要把id=1 name=tom age=20这三个参数传给action
1.action里面定义三个成员变量id name age,这个三个变量的名字一定要和所传变量的名字一致.
2.提供get/set方法
3.将来页面把这三个参数传过来的时候,struts2框架会自动的帮我们把这个三个参数值放action中的三个属性里面.(同时还做了类型的转换)
代码如下:
UserAction类:
public class UserAction {private String name;private String password;private Integer age;private Boolean gender;public String toRegister(){System.out.println("跳转到注册页面");return "register";}public String register(){System.out.println("name:"+name+" "+"password:"+password+" "+"age:"+age+" "+"gender:"+gender);return "login";}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;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Boolean getGender() {return gender;}public void setGender(Boolean gender) {this.gender = gender;}}配置文件struts.xml:
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <!-- user!toLogin.action --><action name="user" class="com.xu.struts2.web.action.UserAction"> <result name="login">/WEB-INF/jsp/login.jsp</result><result name="register">/WEB-INF/jsp/register.jsp</result><result name="index">/WEB-INF/jsp/index.jsp</result></action> </package> <!-- <include file="example.xml"/> --></struts>register.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>注册页面</title></head><body> <h3>注册页面</h3> <hr> <form action="user!register.action"> 用户名:<input type="text" name="name"/><br> 密码:<input type="password" name="password"/><br> 确认密码:<input type="password" name="repassword"/><br> 性别:<input type="radio" name="gender" value="true" checked="checked">男 <input type="radio" name="gender" value="false">女 <br> 年龄:<select name="age"> <option value="">请选择</option><%for(int i=10;i<=30;i++){%><option value="<%=i %>"><%=i %>周岁</option><%}%> </select> <br> <input type="submit" value="注册"> </form> </body></html>login.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录页面</title></head><body> <h3>登录页面</h3> <hr> <form action="LoginServlet"> 用户名:<input type="text" name="name"/><br> 密码:<input type="password" name="password"/><br> <input type="submit" value="登录"> </form></body></html>效果图:
2.域模型
在接收到页面传值的时候,还可以让struts2框架直接帮我们把这些接收到的值封装到一个javabean对象里面.
1.action中定义一个User类型的变量user,User类中有三属性值,id name age,同时User类中还有get/set方法
2.action中给这个user属性提供get/set方法
将来接收到这个参数值以后,struts2框架会帮我们去创建一个User对象,并且把所传参数的三个值封装到对象的三个属性里面,最后把这个封装好的对象放到action的user属性中
只需要改变一下UserAction类的代码:
public class UserAction {//域模型private User user;public String toRegister(){System.out.println("跳转到注册页面");return "register";}public String register(){//接收参数User user=new User(null, name, age, gender, password);System.out.println(user);return "login";}public User getUser() {return user;}public void setUser(User user) {this.user = user;}}别的都不要改变~
效果图如下:
3.模型驱动
1.所属的Action需要实现ModelDriven接口,并且给定类型和实现接口中的getModel方法
2.需要一个封装所有属性的javabean(对应 1.中的给给定类型)
重新建了个类TestAction:
public class TestAction extends ActionSupport implements ModelDriven<User>{private static final long serialVersionUID = 1L; private User user=new User();//这里一定要实例化,否则会为空@Overridepublic String execute(){// TODO Auto-generated method stubreturn "register";}public String register(){System.out.println("register:"+user);return "login";}//获取数据模型--modle--MVC@Overridepublic User getModel() {// TODO Auto-generated method stubreturn user;}}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> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <!-- user!toLogin.action --><action name="user" class="com.xu.struts2.web.action.UserAction"> <result name="login">/WEB-INF/jsp/login.jsp</result><result name="register">/WEB-INF/jsp/register.jsp</result><result name="index">/WEB-INF/jsp/index.jsp</result></action><!-- test.action --><action name="test" class="com.xu.struts2.web.action.TestAction"> <result name="success">/WEB-INF/jsp/index.jsp</result> <result name="login">/WEB-INF/jsp/login.jsp</result><result name="register">/WEB-INF/jsp/register.jsp</result></action> </package> <!-- <include file="example.xml"/> --></struts>效果图如下:
0 0
- Struts2的简单使用(二)页面向action传值
- Struts2的简单使用(四)action向页面传值
- Struts2 jsp页面向 action传参(三种)
- struts2页面向action提交list对象
- struts2 Action向页面传参
- struts2页面向action提交list对象
- Struts2的简单使用(三)action跳转
- struts2的action的知识点和利用action向页面注入值的操作
- struts2 action向jsp传值
- struts2笔记(二)action的配置
- Struts2(二)Action的法
- Struts2的Action向JSP传输List集合并且将数据显示在页面上
- 总结:Struts2中jsp页面向后端action的4种传参方式
- Struts2的Action向JSP传输List集合并且将数据显示在页面上
- Struts2的Action使用
- 使用Struts2关于页面信息国际化(简单的)
- jquery向struts2的action回传值
- struts2学习笔记(1)---JSP页面向Action类传递参数
- PopUpWindow使用详解(一)——基本使用
- 2016.7.13 夏令营 Day6
- 【终端快捷键】Linux terminal 终端常用快捷键
- 关于window.location.href跳转绝对地址的问题
- ui组件——多选下拉input的实现(带有搜索功能)
- Struts2的简单使用(二)页面向action传值
- 指针函数与函数指针的区别
- html的line-height
- 使用OPENGL绘制一个带轨迹的小球
- IT爱生活
- Toast 常见的创建方式
- Android View中getViewTreeObserver().addOnGlobalLayoutListener()以及获取控件的大小
- python while()语句
- 技术那点事-中文IT信息服务网站,为IT专业技术人员提供最全面的信息和服务的网站