struts2获取前台数据的几种方式(持续更新)

来源:互联网 发布:融云 支持java语言 编辑:程序博客网 时间:2024/05/14 20:45

1.action中定义同名变量获取

我们假设在前台设置了这样一个页面:

这里写图片描述

下面是上述页面的代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">    <form action=summary name=f>        first:<input type=text name=first>        second:<input type=text name=second>        <input type=submit value=确定 />    </form>

那么我们可以在其对应的action中通过定义一个同名的变量来获取前台的值:

package com.action;import com.opensymphony.xwork2.ActionSupport;public class SumAction extends ActionSupport {    private int first,second,sum;    public int getFirst() {        return first;    }    public void setFirst(int first) {        this.first = first;    }    public int getSecond() {        return second;    }    public int getSum() {        return sum;    }    public void setSum(int sum) {        this.sum = sum;    }    public void setSecond(int second) {        this.second = second;    }    @Override    public String execute()    {        sum=first+second;        return SUCCESS;    }}

2.涉及到模型层对象的前台数据的获取

下面是定义的User类:

package com.model;public class User {    private int id;    private String name;    private String password;    private String question;    private String answer;    private int flag;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    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 String getQuestion() {        return question;    }    public void setQuestion(String question) {        this.question = question;    }    public String getAnswer() {        return answer;    }    public void setAnswer(String answer) {        this.answer = answer;    }    public int getFlag() {        return flag;    }    public void setFlag(int flag) {        this.flag = flag;    }}

下面是注册页面代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <head>    <base href="<%=basePath%>">    <title>My JSP 'reg.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="styles.css">    -->  </head>    <form action=Reg method="post" name="f">    <input type=hidden name=flag value=1>        <table border=1 align=center>            <caption>用户注册</caption>            <tr>                <td align=right>username:</td>                <td><input type="text" name="u.name"/></td>            </tr>            <tr>                <td align=right>password:</td>                <td><input type="password" name="u.password"/></td>            </tr>            <tr>                <td align=right>密码提示问题:</td>                <td><select name=u.question>                    <option value="我爱吃什么?">                        我爱吃什么?                    </option>                    <option value="我姓名?">                        我姓名?                    </option>                    <option value="我电话?">                        我电话?                    </option>                </select></td>            </tr>            <tr>                <td align=right>答案</td>                <td><input type=text name="u.answer"></td>            </tr>            <tr>                <td colspan=2 align=center>                    <input type=submit value="确定" name="ok" onclick="return check()"/>                    <input type=reset value="取消" name="err" onclick="return check()"/>                </td>            </tr>            <tr>                <td colspan=2 align=center>                 </td>            </tr>        </table>    </form><script language="javascript">function check()                        {                                                   if(document.f.username.value=="")                                       {                alert("用户名不能为空");                                        document.f.username.focus();            return false;        }     if(document.f.pwd.value=="")        {            alert("密码不能为空");            document.f.pwd.focus();            return false;        }}                                                                  </script>

我们这里应该注意到,各个控件的名字是u.xxxx的形式,下面是页面效果:

这里写图片描述

下面在action中:

package com.action;import com.model.User;import com.opensymphony.xwork2.ActionSupport;public class RegAction extends ActionSupport {    private User u;    public User getU() {        return u;    }    public void setU(User u) {        this.u = u;    }    @Override    public String execute()    {        u.setFlag(1);        u.setId(20);        return SUCCESS;    }}

然后页面展示部分的代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>名字:${u.id}姓名:${u.name}<br>密码:${u.password}<br>

这里要注意,action中定义的model对象名字要和前台控件名字的保持相关性。

0 0