https://blog.csdn.net/y249839817/article/details/77702745

https://blog.csdn.net/nthack5730/article/details/46813245

https://www.cnblogs.com/linjiqin/archive/2011/03/16/1986367.html

struts2之请求参数接收

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


public class HelloWorldAction {
private Integer id; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
}
}

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


public class HelloWorldAction {
private Person person; public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
} }

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

实体bean


package com.ljq.bean;

public class Person {
private String name;
private Integer id; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} }

HelloWorldAction类


package com.ljq.action;

import com.ljq.bean.Person;

public class HelloWorldAction {
//基本类型请求参数
private Integer id;
private String name;
//复合类型请求参数
private Person person; public String execute(){
return "success";
} public Person getPerson() {
return person;
} public void setPerson(Person person) {
this.person = person;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void 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>

struts2接受请求参数的更多相关文章

  1. Struts2接受请求参数三种常用方法

    一 接受请求参数主要有三种:属性驱动 对象驱动 模型驱动<model Driven> 方式1:在Action中接收请求参数不需要使用request对象,在Action中定义与请求参数相同名 ...

  2. struts2之请求参数接收

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

  3. 十一、Struts2封装请求参数的方式

    十一.Struts2封装请求参数的方式 方式一.Action 本身作为model对象,通过成员setter封装(一个名字为params的拦截器干的) 注意:表单中的名称要和动作类中的名称一致(这是必须 ...

  4. Springmvc之接受请求参数二

    Springmvc之接受请求参数 准备工作 新建一个表单提交 请求地址: http://localhost:8080/ProjectName/user/login.do <form action ...

  5. SpringMvc接受请求参数的几种情况演示

    说明: 通常get请求获取的参数是在url后面,而post请求获取的是请求体当中的参数.因此两者在请求方式上会有所不同. 1.直接将接受的参数写在controller对应方法的形参当中(适用于get提 ...

  6. struts2获取请求参数的三种方式及传递给JSP参数的方式

    接上一篇文章 package test; import com.opensymphony.xwork2.ActionSupport; import javax.servlet.http.*; impo ...

  7. SpringMVC 接受请求参数、作用域传值

    目录 原生servlet接收参数 Spring MVC最基础的参数获取 接收基本数据类型参数 方法参数列表和请求参数不一致的处理方式 接收对象引用数据类型 接收复选框这种多个同名的参数 接收obj.f ...

  8. java工具类-接受请求参数,并利用反射调用方法

    public String a(HttpServletRequest request,HttpServletResponse response) throws JSONException, IOExc ...

  9. SpringMVC接受请求参数、

    1. 接收请求参数 1.1. [不推荐]通过HttpServletRequest 在处理请求的方法中,添加HttpServletRequest对象作为参数,在方法体中,直接调用参数对象的getPara ...

随机推荐

  1. Planning CodeForces - 854C

    Planning CodeForces - 854C 题意:有n架航班,第i架原先的时候是在第i分钟起飞的.现在前k分钟无法有飞机起飞,因此需要调整安排表,延后飞机起飞.仍然要求每一分钟只有一架飞机起 ...

  2. 牛客国庆集训派对Day_1~3

    Day_1 A.Tobaku Mokushiroku Kaiji 题目描述 Kaiji正在与另外一人玩石头剪刀布.双方各有一些代表石头.剪刀.布的卡牌,每局两人各出一张卡牌,根据卡牌的内容决定这一局的 ...

  3. sql基础语法-创建表和约束

    创建数据库表 USE SQL2016 IF OBJECT_ID('dbo.Employees','U') IS NOT NULL DROP TABLE dbo.Employees; Create TA ...

  4. Eclipse Neon Java版本安装Java EE插件

    Help→Install New Software 地址:Neon - http://download.eclipse.org/releases/neon/201703231000 选择  Web,X ...

  5. MVC:html动态追加行及取值

    先一个button   id=addRow 点击事件进行添加 $("#addRow").bind("click", function () { var addH ...

  6. Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数

    如何轻松玩转Arduino单片机,当我在进行数据转换的时候,遇到了问题,尝试了C语言和C++中的好多函数,都没有达到将float型数据转换为char型的目的.苦苦查阅资料后,终于找到了一个大神级函数! ...

  7. B/S网络架构

    B/S基于统一的应用层协议HTTP来交互数据,目前的B/S网络架构大多采用如图所示的架构设计,既要满足海量用户访问请求,又要保持用户请求的快速响应. 当一个用户在浏览器输入www.taobao.com ...

  8. 微信小程序开发系列五:微信小程序中如何响应用户输入事件

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  9. JavaScript-条件循环

    JavaScript-条件循环 条件判断语句 if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码 if (表达式){    当条件为 true 时执行的代码} if...else 语 ...

  10. 加快create-react-app的方法

    npm config get registry 查看npm源,默认源是 https://registry.npmjs.org/ npm config set registry https://regi ...