复合类型数据的接收
所谓复合类型数据是指,一个JavaBean实例的属性值,而这些值又作为参数传递给Action。
Action若要接收这些数据,需要做到以下几点:
(1)定义Action时,将该Bean的实例定义为该Action的属性,并赋予其get与set方法。
(2)参数的形式为:bean实例.属性
(3)若复合型数据还需要在视图中显示,如在EL表达式中出现,其出现形式也为:bean实例.属性

源码文档建立目录如下:

Complex_Params_Action.java源码如下:

  1. package actions;
  2.  
  3. import dto.UserDto;
  4.  
  5. public class Complex_Params_Action {
  6. private UserDto user;
  7.  
  8. public UserDto getUser() {
  9. return user;
  10. }
  11.  
  12. public void setUser(UserDto user) {
  13. this.user = user;
  14. }
  15.  
  16. public String execute(){
  17. System.out.println("user:"+user);
  18. return "success";
  19. }
  20.  
  21. }

UserDto.java源码如下:

  1. package dto;
  2.  
  3. public class UserDto {
  4. private String username;
  5. private int age;
  6. public String getUsername() {
  7. return username;
  8. }
  9. public void setUsername(String username) {
  10. this.username = username;
  11. }
  12. public int getAge() {
  13. return age;
  14. }
  15. public void setAge(int age) {
  16. this.age = age;
  17. }
  18.  
  19. public String toString(){
  20. return "username="+username+",age="+age;
  21. }
  22.  
  23. }

index.jsp源码如下:

  1. <%@ page pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4.  
  5. <title>注册页面</title>
  6.  
  7. </head>
  8.  
  9. <body>
  10. <form action="complex.action" method="post">
  11. 用户名<input type="text" name="user.username"/><br/>
  12. 年龄<input type="text" name="user.age"/><br/>
  13. <input type="submit" value="注册"/>
  14. </form>
  15. </body>
  16. </html>

welcome.jsp源码如下:

  1. <%@ page pageEncoding="utf-8" isELIgnored="false"%>
  2.  
  3. <html>
  4. <head>
  5.  
  6. <title>welcome page</title>
  7.  
  8. </head>
  9.  
  10. <body>
  11. 用户名:${user.username}<br/>
  12. 年龄:${user.age}
  13.  
  14. </body>
  15. </html>

web.xml配置文档如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.  
  8. <filter>
  9. <filter-name>struts2</filter-name>
  10. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  11. </filter>
  12.  
  13. <filter-mapping>
  14. <filter-name>struts2</filter-name>
  15. <url-pattern>/*</url-pattern>
  16. </filter-mapping>
  17.  
  18. <welcome-file-list>
  19. <welcome-file>index.jsp</welcome-file>
  20. </welcome-file-list>
  21. </web-app>

struts.xml配置如下:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5.  
  6. <struts>
  7.  
  8. <package name="one" extends="struts-default">
  9.  
  10. <action name="complex" class="actions.Complex_Params_Action">
  11. <result>/welcome.jsp</result>
  12. </action>
  13.  
  14. </package>
  15. </struts>

重新部署发布,启动tomcata,地址输入:

http://127.0.0.1:8080/receive_complex_params/

7.Struts2复杂类型数据的接受的更多相关文章

  1. 6.Struts2简单类型数据的接受

    简单类型数据的接收 在Action类中定义与请求参数同名的属性, 即,要定义该属性的set方法,便能够使struts2自动接收请求参数并赋予同名属性. 简单类型数据的接受举例: 新建工程项目,名称为: ...

  2. Struts2+Jquery实现ajax并返回json类型数据

    来源于:http://my.oschina.net/simpleton/blog/139212 摘要 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的 ...

  3. 转载:Struts2+Jquery实现ajax并返回json类型数据

    摘要: 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数 ...

  4. Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

    发送字符串数据发送数据 string strId = "guest"; "; string postData = "userid=" + strId; ...

  5. Spring的controller接受Date类型数据,接受枚举类型数据

    1. Controller接收Date类型的数据 核心使用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 来将传递过来的时间字符串 ...

  6. 【Spring】SpringMVC中浅析Date类型数据的传递

    在控制器中加入如下代码: @InitBinder public void initBinder(ServletRequestDataBinder bin){ SimpleDateFormat sdf ...

  7. SpringMVC 处理Date类型数据@InitBinder @DateTimeFormat 注解 的使用

    使用SpringMVC的时候,需要将表单中的日期字符串转换成对应JavaBean的Date类型,而SpringMVC默认不支持这个格式的转换,解决方法有两种,如下: 方法一 . 在需要日期转换的Con ...

  8. MySQL JSON 类型数据操作

    1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...

  9. Python——可变和不可变类型数据

    什么是不可变类型? 存储空间保存的数据不允许被修改,这种数据就是不可变类型. 常见的不可变类型有: 数字类型 int, bool, float, complex, long(2.x) 字符串 str ...

随机推荐

  1. WPF整理-Style

    "Consistency in a user interface is an important trait; there are many facets of consistency,   ...

  2. Android Studio编码问题

    Android Studio编码问题 不同于Eclipse,选中项目右击即会出现"Properties"选项,可以设置项目文件的默认编码,可以根据自己的需要设置为UTF-8/GB2 ...

  3. C#_技巧:计算代码块运行的时间

    System.Diagnostics下类Stopwatch,给程序代码块运行计时, 利用start()和stop()方法来标记代码快. 该命名空间下还有一些其他类,可以对程序进行诊断(diagnosi ...

  4. ios使用CocoaHTTPServer实现文件共享

    CocoaHTTPServer下载地址:https://github.com/robbiehanson/CocoaHTTPServer 实现效果:在电脑端输入192.168.0.100:8080,出现 ...

  5. Javascript分号,加还是不加?

    关于这个问题,网上已经有很多人讨论过了,我先说说自己对这个问题的回答:加!(但非必须) 有些人写代码,懒得加分号,除非是迫不得已才勉强放一个分号上去.如果你可以保证你写的代码不出现任何 bug,那当然 ...

  6. 大白话讲解Promise(一)

    去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范.作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise的基本 ...

  7. C语言 · 复习杂记

    /*=================================*/ /* 基础部分 */ /*=================================*/一:.CPP--C++文件: ...

  8. 前端编码规范之JavaScript

    上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...

  9. iOS-语言本地化

    在使用本地化语言之前,来看看本地化语言文件内容的结构(这里我以Chinese为例):"Cancel"="取消";"OK"="确定& ...

  10. HTML5_03之Canvas绘图

    1.Canvas绘图--JS绘图: <canvas id='c1' width='' height=''></canvas> * Canvas尺寸不能用CSS设置: c1.he ...