1.action属性:

前端参数直接在action属性名之后,如PersonAction?id=1;

在对应的action中加入属性id,必须加对应属性的get(),set()方法,其中属性名应为小写。

应用场景:客户端向action中传递的参数不是一个完整的对象,而是简单的n个参数;

2.领域对象(model):

前端参数名Action中bean类对象.属性名,如有Person类的一个对象p,在Action
需要获取,则前台可表示为p.name,p.age,其中name,age是person的属性。

后台Action中定义model类如Person的对象,必须加该对象的get(),set()方法;

应用场景:添加操作等发送的是一个对象的属性或者多个对象的属性或属性太多;

3.模型接口方式:

前端直接是name属性,不用再对象名.属性名(p.name);

Action类实现ModelDriven<T>,重写getModel()方法,定义一个bean类的对象并初始化(private  Person p=new  Person();或是在getModel(this.p = new Person());另种初始化的方式都可选);

应用场景:Action中接收的属性只是1个bean对象的属性,如表单添加1个bean类;

实现代码如下:

<%@ 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">
<html><head><base href="<%=basePath%>"><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">    <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><body><form action="personAction.action" method="post">name:<input type="text" name="p.name"><br>age:<input type="text" name="p.age"><br>sex:<input type="text" name="p.sex"><br><input type="submit" value="ok"></form> <a href="personAction?id=1">personaction</a><hr><form action="personAction" method="post">name:<input type="text" name="name"><br>age:<input type="text" name="age"><br>sex:<input type="text" name="sex"><br><input type="submit" value="ok"></form></body>
</html>

Ation中的代码:

package com.handler;import com.bean.Person;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;public class PersonAction implements ModelDriven<Person>{private Person p1 = new Person();private Person p;private int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public Person getP() {return p;}public void setP(Person p) {this.p = p;}public String addPerson(){System.out.println(p.getName()+","+p.getAge());System.out.println(id+1);System.out.println(p1.getName());return "success";}public Person getModel() {//this.p1 = new Person();return p1;}}

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="false" /><constant name="struts.devMode" value="true" /><!-- package:划分action1-name:包的名字  :本工程中唯一2-namespace:指定本包的命名空间  默认值:"" :任意路径    3-  extends:继承 1-struts-default:struts的默认包--><!-- url:namespace+actionName --><package name="default" namespace="/" extends="struts-default"><action name="index"><result>/index.jsp</result></action><!-- action:映射action类1-name:唯一的id(url访问时需要的名字):一个包里要唯一2-class:指定action类  可选      默认:ActionSuport3-method:指定业务方法  可选       默认:executeresult:映射返回结果   相应1-name:指定业务方法的返回值     默认:success2-url指定:/开头3=type:指定跳转方式    默认:请求转发--><action name="personAction" class="com.handler.PersonAction" method="addPerson"><result>/show.jsp</result></action></package>
</struts>

使用struts2框架中3种客户端向服务端发送请求参数的方式相关推荐

  1. java服务器向客户端发消息_java一个简单的客户端向服务端发送消息

    java一个简单的客户端向服务端发送消息 客户端代码: package com.chenghu.tcpip; import java.io.IOException; import java.io.Ou ...

  2. Java中Socket实现客户端和服务端通信(多线程实现全双工通信)

    效果图 目录结构 服务端Server package server;import thread.SocketReader; import thread.SocketWrite;import java. ...

  3. python中使用socket编程实现带有界面的客户端向服务端发送文件和下载文件

    一主界面: **二:发送文件界面:**首先需要开启发送文件服务端(这里需要注意的是每一次发送文件之前都需要开启一次服务端,因为我在这里将每一次发送文件之后就关闭了客户端和服务端之间的连接) 输出相关客 ...

  4. Java中Socket通信-客户端与服务端相互传输对象数据

    场景 Java中Socket通信-服务端和客户端双向传输字符串实现: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1084885 ...

  5. C#中面向连接的客户端与服务端编程

    1)         流程 2)         服务端程序特点 Ø 一般启动后就一直处于运行状态,以等待客户端进程的请求 Ø 使用的端口往往是熟知端口,便于客户机进程连接请求 Ø 一般拥有较多的系统 ...

  6. java网络编程Socket实现客户端向服务端发送信息

    (可按目录按需阅读,我一般会整理的比较细) 前置知识 java IO Socket 什么是socket?socket字面意思其实就是一个插口或者套接字,包含了源ip地址.源端口.目的ip地址和源端口. ...

  7. QTcpSocket客户端和服务端发送图片(或大文件)小Demo

    先看一下效果: 思路: 发图片.大文件与发短字符不大一样. 1.文件和图片通过TCP可能一次发不过去,可能要发很多次.所以我们在发送文件.数据.以及文字最好带上文件的大小. 2.图片转换成文件流的形式 ...

  8. Java中Socket通信-客户端向服务端发送照片

    场景 Java中Socket通信-服务端和客户端双向传输字符串实现: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1084885 ...

  9. mina框架入门(简单客户端和服务端实例)

    学习资料来自:守望者 Mina 是apche开发的一个开源的网络通信框架,基于JavaNIO来实现 需要用到的jar包如下:可自行到官网下载mina Apache官网 案例:入门服务端程序 写一个服务 ...

最新文章

  1. Python 进阶_生成器 生成器表达式
  2. mysql 按条件导出数据_mysql命令行按任意查询条件导出指定数据
  3. 声明变量_如果同时声明多个变量
  4. PHP js curl,php curl 获取javascript动态生成的值
  5. UML小结以及基于领域模型的系统设计初步
  6. 2springboot:快速创建springboot项目
  7. java原始类型和引用类型_Java中的8种原始类型
  8. 我眼中的“SSD” ..update
  9. Element-UI中el-input输入值不显示
  10. SQLPro Studio mac如何链接MYSQL?
  11. XGBOOST模型简单调参(分类)
  12. Javascript之把网页加入收藏夹功能
  13. DELL戴尔开启/关闭触摸板方法
  14. centos修改mysql数据库密码修改_centos7 mysql 修改数据库密码
  15. HoloWAN网络仿真损伤仪的基本功能及图解
  16. Mac上SecureCRT破解
  17. LaTEX 表格内容换行
  18. windows10怎么卸载计算机,win10系统自带浏览器怎么卸载_win10如何卸载电脑自带的浏览器-win7之家...
  19. 使用Office2013打开文档时,弹出“正在与服务器联系以获取信息”对话框问题
  20. Java学习练习题11:Java习题及代码11

热门文章

  1. 【转】Spring与我的经验过程
  2. 如何快速删除QQ说说内容
  3. 【SSL】OV、DV和EV证书的区别
  4. 安卓dj专业打碟机软件_Pioneer DJ发布蓝牙智能打碟机DDJ-200:功能齐全 专为初学者打造...
  5. 什么是站内SEO优化(应该怎么做)
  6. 【操作教程】EasyNVR平台如何接入硬盘录像机?
  7. 安全测试如何成为重中之重?软件安全测评机构该怎么找
  8. 仿百度壁纸客户端(三)——首页单向,双向事件冲突处理,壁纸列表的实现...
  9. C#代码:将MP4后缀名批量改为MP3
  10. python实现3d人物建模_放心的python实现3d人物建模容易学吗?,zbrush不规则金属硬边...