zoukankan      html  css  js  c++  java
  • struts2之请求参数接收

    struts2之请求参数接收

    1. 采用基本类型接受请求参数(get/post)
    在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名的属性。
    请求路径:http://localhost:8080/action/register.action?id=33

    复制代码
    publicclass HelloWorldAction {
    private Integer id;

    public Integer getId() {
    return id;
    }

    publicvoid setId(Integer id) {
    this.id = id;
    }
    }
    复制代码

                            
    2. 采用复合类型接受请求参数
    请求路径:http://localhost:8080/action/register.action?id=79

    复制代码
    publicclass HelloWorldAction {
    private Person person;

    public Person getPerson() {
    return person;
    }

    publicvoid setPerson(Person person) {
    this.person = person;
    }

    }
    复制代码

    获取Bean属性的原理:
    Struts2首先通过反射技术调用Person的默认构造器创建person的实例,然后再通过反射技术调用person中与请求参数同名的属性的setter方法,来获取请求参数数值。

    实体bean

    复制代码
    package com.ljq.bean;

    publicclass Person {
    private String name;
    private Integer id;

    public String getName() {
    return name;
    }

    publicvoid setName(String name) {
    this.name = name;
    }

    public Integer getId() {
    return id;
    }

    publicvoid setId(Integer id) {
    this.id = id;
    }

    }
    复制代码

                    

    HelloWorldAction类

    复制代码
    package com.ljq.action;

    import com.ljq.bean.Person;

    publicclass HelloWorldAction {
    //基本类型请求参数
    private Integer id;
    private String name;
    //复合类型请求参数
    private Person person;


    public String execute(){
    return"success";
    }


    public Person getPerson() {
    return person;
    }

    publicvoid setPerson(Person person) {
    this.person = person;
    }

    public Integer getId() {
    return id;
    }

    publicvoid setId(Integer id) {
    this.id = id;
    }

    public String getName() {
    return name;
    }

    publicvoid setName(String name) {
    this.name = name;
    }

    }
    复制代码

                             

    index.jsp请求页面

    复制代码
    <%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>My JSP 'index.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">
    </head>

    <body>
    <!-- get方法发送,如果是中文则会出现乱码,post不会,好像struts2.1.8有修正此问题
    基本类型get请求参数: http:
    //localhost:8083/struts2/control/employee/executeHelloWorld.do?id=1&name= zhangsan
    复合类型get请求参数: http://localhost:8083/struts2/control/employee/executeHelloWorld.do?person.id=2&person.name=lisi

    http:
    //localhost:8083/struts2/control/employee/executeHelloWorld.do?id=1&name=zhangsan&person.id=2&person.name=lisi
    -->

    <!-- post方法发送 -->
    <form action="<%=request.getContextPath()%>/control/employee/executeHelloWorld.do" method="post">
    <!-- 基本类型请求参数 -->
    id:
    <input type="text" name="id"><br/>
    name:
    <input type="text" name="name"><br/>
    <!-- 复合类型请求参数 -->
    person.id:
    <input type="text" name="person.id"><br/>
    person.name:
    <input type="text" name="person.name"><br/>
    <input type="submit" value="发送"/>
    </form>
    </body>
    </html>
    复制代码

        

    显示页面

    复制代码
    <%@ page language="java"import="java.util.*,java.net.*" pageEncoding="UTF-8"%>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>

    <title>My JSP 'message.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">
    </head>

    <body>
    <!-- 输出基本类型请求参数 -->
    id
    =${id}<br/>
    name
    =${name}<br/>
    <!-- 输出复合类型请求参数 -->
    person.id
    =${person.id }<br/>
    person.name
    =${person.name }<br/>
    </body>
    </html>
    复制代码

                                     

                     

    struts.xml配置文件 

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

    <struts>
    <constant name="struts.i18n.encoding" value="UTF-8"/>
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
    <constant name="struts.action.extension" value="do,go"/>

    <package name="employee" namespace="/control/employee"extends="struts-default">
    <action name="*HelloWorld"class="com.ljq.action.HelloWorldAction" method="{1}">
    <result name="success">/WEB-INF/page/message.jsp</result>
    </action>
    </package>
    </struts>
    复制代码
  • 相关阅读:
    【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
    【算法学习笔记】75. 动态规划 棋盘型 期望计算 1390 畅畅的牙签盒(改)
    【算法学习笔记】74. 枚举 状态压缩 填充方案 SJTU OJ 1391 畅畅的牙签袋(改)
    【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人
    【算法学习笔记】72.LCS 最大公公子序列 动态规划 SJTU OJ 1065 小M的生物实验1
    【算法学习笔记】71.动态规划 双重条件 SJTU OJ 1124 我把助教团的平均智商拉低了
    【算法学习笔记】70.回文序列 动态规划 SJTU OJ 1066 小M家的牛们
    【算法学习笔记】69. 枚举法 字典序处理 SJTU OJ 1047 The Clocks
    【算法学习笔记】68.枚举 SJTU OJ 1272 写数游戏
    【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
  • 原文地址:https://www.cnblogs.com/sandea/p/3520780.html
Copyright © 2011-2022 走看看