Struts2中的数据交互

  在Struts2中我们不必再使用request.getParameter()这种方式来获取前台发送到服务器的参数。

  我们可以在服务器端的Java类中直接声明一个和前台发送数据的同名变量即可,然后生成它的set/get方法即可以实现前后台数据的交互。

  假如我们在前台页面中的表单如下:

<form method="post" action="demo!register.action">
username:<input type="text" name="username"><br />
password:<input type="password" name="password"><br />
<input type="submit" value="注册">
</form>

  在服务器端的Java类中我们直接声明私有的同名变量就可以获取到前台发送到服务器端的参数

private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

  set/get方法不需要们自己写可以通过右键Java类——>Source——>Generate Getter And Setter来自动生成

  通过这种方式我们就可以实现数据的交互,在使用过程我们要注意

  1.在Java类中声明的变量名称要和前台发送数据的名称互相对应

  2.在Struts2中方法不要带有参数

  3.在前台数据访问服务器是通过set方法来实现数据的获取,服务器通过get方法向前台页面返回数据,数据返回前台之后我们可以通过EL表达式来同名获取

一个完整示例

  index.html内容如下:

<form method="post" action="demo!register.action">
username:<input type="text" name="username"><br />
password:<input type="password" name="password"><br />
<input type="submit" value="注册">
</form>

  新建一个success.jsp内容如下:

hello ${username} your password is ${password}.

  struts.xml内容如下:

<package name="demo" extends="struts-default">
<action name="demo" class="Action.Handler">
<result name="success">success.jsp</result>
</action>
</package>

  新建包,包名Action在包中新建Java类,类名Handler,总之Java文件要和struts.xml中action的class互相对应。Handler.java如下:

    private String username;
private String password;
public String register() throws Exception{
return "success";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

  register方法中return的"success"通过struts.xml配置可以知道显示success.jsp页面,在页面中我们EL表达式显示我们输入的信息

Struts2基本使用(三)--数据交互的更多相关文章

  1. struts2和JSON的数据交互

    一.实验环境 1.struts2基本包 2.json-plugin 在struts2的lib下可以找到. 3.web.xml 加入struts2 <filter> <filter-n ...

  2. Struts2与Ajax数据交互

    写在前面: ajax请求在项目中常常使用,今天就平时掌握的总结一下,关于使用ajax请求到Struts2中的action时,前台页面与后台action之间的数据传递交互问题. 这里我主要记录下自己所掌 ...

  3. 【原创】xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1.概述 1.概述 [原创]实时IPC概述 [ ...

  4. uLua学习之数据交互(三)

    前言 在上节中,大概谈了一下如何在lua脚本中调用unity3d中的方法来创建游戏物体,这只是很小的一个方面,uLua的优势在于对unity3d中C#语言的扩展和定制.那么如何扩展和定制呢?其中的数据 ...

  5. GoAhead4.1.0 开发总结三(GoAction+Ajax实现局部数据交互)

    环境 官方文档:https://www.embedthis.com/goahead/doc/ 源码下载: goahead-4.1.0-src.tgz 系统平台:Ubuntu 12.04.4 gcc v ...

  6. Struts2知识点小结(三)--值栈与ognl表达式

    1.问题一 : 什么是值栈 ValueStack        回顾web阶段 数据交互问题?        客户端提交数据  到  服务器端    request接受数据+BeanUtils实体封装 ...

  7. 使用Jquery.AJAX方法和PHP后台数据交互小结

    使用jQuery的AJAX方法和后台PHP进行数据交互,交互采用的数据格式JSON格式. 我主要小小的总结了一下,我使用AJAX方法时候遇到一些小小的问题. 第一:在传递数据的时候,传输地址注意是否正 ...

  8. JSP数据交互

    JSP数据交互   一.jsp中java小脚本 1.<% java代码段%> 2.<% =java表达式%>不能有分号 3.<%!成员变量和函数声明%>二.注释 1 ...

  9. Flex数据交互之Remoting

    一 前言 Flex数据交互常用的有三种方式:WebService.HttpService以及Remoting. WebService方式已在这篇文章中给出,这篇文章主要讲解以Remoting方式进行数 ...

随机推荐

  1. Scala的类与类型

    类和类型 List<String>和List<Int>类型是不一样的,但是jvm运行时会采用泛型擦除.导致List<String>和List<Int>都 ...

  2. HttpClient发送get,post接口请求

    HttpClient发送get post接口请求/*  * post  * @param url POST地址 * @param data POST数据NameValuePair[] * @retur ...

  3. ACM-ICPC 2018 徐州赛区网络预赛 Solution

    A. Hard to prepare 题意:有n个客人做成一圈,有$2^k$种面具,对于每种面具有一种面具不能使相邻的两个人戴,共有多少种做法. 思路: 把题意转化成相邻的人不能带同种面具.总数为$( ...

  4. c++第三十天

    P154~p159:语句1.通常情况下顺序执行. 2.C++提供一组控制流(flow-of-control)语句以支持更复杂的执行路径. 3.空语句的作用:语法上需要一条语句,但是逻辑上不需要. ) ...

  5. Vim 操作命令不完全汇总

    .命令:"重复上次修改": x命令:删除光标下的字符: u命令:撤销上次修改: dd命令:删除整行: >G命令:增加从当前行到文档末尾处的层级缩进: $命令:把光标移至行尾: ...

  6. mysql的隔离性和锁

    INNODB的隔离性质 INNODB的事务支持4种隔离机制,分别是 READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, and SERIALIZABL ...

  7. LA 3942 背单词

    https://vjudge.net/problem/UVALive-3942 题意: 给出一个由S个不同单词组成的字典和一个长字符串.把这个字符串分解成若干个单词的连接,有多少种方法?比如,有4个单 ...

  8. python 判断字典是否为空

    my_dict = {} if not bool(my_dict): print("Dictionary is empty")

  9. [sql]join的5种方式:inner join、left(outer) join、right (outer) Join、full(outer) join、cross join

    现在有两张表  如下图所示:             一 .inner join   返回的结果:两个表的交集行 二. left join   是left outer join的简写 返回结果:左表的 ...

  10. JavaScript--语法2--语句结构

    JavaScript--语句结构 一.心得 判断的时候常量放左边java中switch只支持四种类型,javaScript是弱类型,所有的都支持. 显示方法: 77 // alert("x= ...