- 浏览: 458270 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
a1439226817:
能不能发下源码1439226817@qq.com
ExtJsCRUD组件实现 -
w923690968:
[list][*]引用[u][/u][/list]
[JS]Drag And Drop -
zhumingyuan:
您好!用的的是3.2.3版本,按照您的方法配置了一下,但是还是 ...
spring vmc3.1.1 下,通过AnnotationMethodHandlerAdapter配置webBindingInitializer失效解决方案 -
sumo084:
我把xDarkness-MultClrBubble-1.0.j ...
JAVA实现类泡泡屏保效果 -
sumo084:
求源码,楼主好人,630483738@qq.com,谢谢
JAVA实现类泡泡屏保效果
要使用struts2,首先需要在web.xml中配置一个监听器:
接着,我们实现一个Action,在struts2中,实现Action并不像struts1那样一定需要继承一个基类,你也可以不继承任何基类:
代码看上去很简洁。我们定义了一个saveUser方法,这个方法的定义也不像struts1中那样一定需要request、forward参数什么的,完全就是一个很简单的方法。我们要想向request中设值则可以通过ServletActionContext.getRequest()获取到容器上下文中的request对象,就像这样:ServletActionContext.getRequest().setAttribute("sex", "男");
但是,struts2并不推荐这样使用,struts2推荐使用ActionContext上下文来设值,代码如下:
设置好值之后,我们可以通过struts2提供的一个静态常量Action.SUCCESS来返回需要跳转的页面了。Action.SUCCESS其实就是一个"success"字符串,它会到struts.XML中去找当前action中名称为success的result来进行跳转。struts.XML的配置如下:
struts2的配置文件通过使用package将action进行分类,这样便于组织。通常这个package需要继承一个名为"struts-default"的package,同时也引入了命名空间namespace的概念。
下面是一些比较简单的辅助类、POJO类:
接下来需要将刚才action中设置的值在页面中显示了,页面定义如下:
struts2使用了OGNL语言来对action上下文中设置的变量进行解析输出。OGNL的基础请参考本blog中“OGNL入门”那篇教程,我这边也就不再做过多的解释了。
上面的代码都完成后,我们就可以来进行测试了。在浏览器中手动输入如下url,或者在root文件夹下新建一个jsp文件,加上如下代码:
点击这个超链接,它会调用simple命名空间下的名称为hello的action中的saveUser方法进行参数传递。经由saveUser方法调用后,会跳转到success对应的页面,显示出刚才传递的数据。
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
接着,我们实现一个Action,在struts2中,实现Action并不像struts1那样一定需要继承一个基类,你也可以不继承任何基类:
package org.darkness.struts2.test; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; public class ParamsAction { private int id; private String username; private String password; private boolean boolvalue; // getter and setter methods here public Utils getUtils() { return new Utils(); } public String saveUser() { // 直接赋值,可以将这个值传递到下一个页面 id = 10; // 通过ActionContext对象来传值,在页面上,通过#name来取值 ActionContext.getContext().put("name", "暗之幻影"); // 通过httpRequest对象来传输数据 ServletActionContext.getRequest().setAttribute("sex", "男"); List<User> users = new ArrayList<User>(); for (int i = 0; i < 10; i++) { User user = new User(); user.setId(i); user.setUsername("darkness" + i); user.setPassword("sky" + i); users.add(user); } ActionContext.getContext().put("users", users); return Action.SUCCESS; } }
代码看上去很简洁。我们定义了一个saveUser方法,这个方法的定义也不像struts1中那样一定需要request、forward参数什么的,完全就是一个很简单的方法。我们要想向request中设值则可以通过ServletActionContext.getRequest()获取到容器上下文中的request对象,就像这样:ServletActionContext.getRequest().setAttribute("sex", "男");
但是,struts2并不推荐这样使用,struts2推荐使用ActionContext上下文来设值,代码如下:
ActionContext.getContext().put("name", "暗之幻影");
设置好值之后,我们可以通过struts2提供的一个静态常量Action.SUCCESS来返回需要跳转的页面了。Action.SUCCESS其实就是一个"success"字符串,它会到struts.XML中去找当前action中名称为success的result来进行跳转。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> <package name="simple" namespace="/simple" extends="struts-default"> <action name="hello" class="org.darkness.struts2.test.ParamsAction"> <result name="success"> /struts2/test/save_success.jsp </result> </action> </package> </struts>
struts2的配置文件通过使用package将action进行分类,这样便于组织。通常这个package需要继承一个名为"struts-default"的package,同时也引入了命名空间namespace的概念。
下面是一些比较简单的辅助类、POJO类:
package org.darkness.struts2.test; public class Utils { public static String toLowerCase(String str) { return str.toLowerCase(); } public String toUpperCase(String str) { return str.toUpperCase(); } } package org.darkness.struts2.test; public class User { private int id; private String username; private String password; private Person person; // getter and setter methods here } package org.darkness.struts2.test; public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String fact(User u){ return u.getUsername()+","; } public String getFact(){ return "username"; } }
接下来需要将刚才action中设置的值在页面中显示了,页面定义如下:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> id:<s:property value="id"/> <br> username: <s:property value="username"/> <br> password: <s:property value="password"/> <br> booleanvalue: <s:property value="boolvalue"/> <br> name=<s:property value="#name"/> <br> name=<s:property value="name"/> <br> sex=<s:property value="#request['sex']"/> <br> <s:iterator value="#users"> id:<s:property value="id"/>, username:<s:property value="@org.darkness.struts2.test.Utils@toLowerCase(username)"/>, password:<s:property value="new org.darkness.struts2.test.Utils().toUpperCase(password)"/>,boolvalue:<s:property value="boolvalue"/> <br> </s:iterator> username: <s:property value="utils.toUpperCase(username)"/> <br> davevalue: <s:property value="datevalue"/> <br> point: <s:property value="point"/> <br> </body> </html>
struts2使用了OGNL语言来对action上下文中设置的变量进行解析输出。OGNL的基础请参考本blog中“OGNL入门”那篇教程,我这边也就不再做过多的解释了。
上面的代码都完成后,我们就可以来进行测试了。在浏览器中手动输入如下url,或者在root文件夹下新建一个jsp文件,加上如下代码:
<a href="simple/hello!saveUser.action?username=darkness&password=sky&boolvalue=true">调用ParamsAction.saveUser方法</a>
点击这个超链接,它会调用simple命名空间下的名称为hello的action中的saveUser方法进行参数传递。经由saveUser方法调用后,会跳转到success对应的页面,显示出刚才传递的数据。
发表评论
-
Flex端使用alivepdf直接导出PDF文件:测试中文有乱码
2011-07-21 16:15 2823Flex端使用alivepdf直接导出PDF文件:测试中文有乱 ... -
关于Project facet Java 6.0 is not supported的问题解决方案
2009-09-21 10:33 2070今天在Eclipse下发布使用java6.0的项目时遇到了“P ... -
JAVA日期格式化
2009-09-04 16:02 1594JAVA日期格式化直接使用SimpleDateFormat类, ... -
MyEclipse7.x下VSS(Visual SourceSafe)的安装和使用
2009-09-01 11:05 2066一、下载VSS插件 可以去官方网站下载,也可以在这里ht ... -
使JfreeChart横坐标数据换行显示
2009-08-31 20:50 6366在jfreechart中如果横坐标的数据太多显示的时候会变成 ... -
Struts2整合Freemarker生成静态页面
2009-08-10 09:42 6304这是生成静态页面的预览: 其对应的模板文件: & ... -
Struts2与Spring整合
2009-08-05 21:51 1290【先引入struts2、spring相 ... -
The method getJspApplicationContext(ServletContext) is undefined for the type
2009-07-08 10:45 10792The method getJspApplicationCo ... -
Java Base64类库学习笔记
2009-06-26 14:12 1829Java Base64 这是一个用于编码和解码(encode/ ... -
base64_encode和base64_decode的JAVA实现
2009-06-26 13:32 8196Base64是网络上最常见的用于传输8Bit字节代码的编码方式 ... -
OGNL入门
2009-05-01 07:30 3556package org.darkness.ognl.tes ... -
JSP复习笔记——文件上传
2009-04-28 11:57 1217SmartUpload主要的功能是上传文件 上传图片,可以通过 ... -
JSP复习笔记——第11章 JSP 构架和MVC设计模式
2009-04-28 11:56 129011.1 JSP Model I 体系结构 ... -
JSP复习笔记——第10章 连接数据库 之 JDBC相关
2009-04-28 11:00 1139批处理: import java.sql.*; publ ... -
JSP复习笔记——第10章 连接数据库 之 jsp+DAO实现留言管理程序
2009-04-28 10:57 1826案例-jsp+DAO实现留言管理程序 ------------ ... -
JSP复习笔记——第10章 连接数据库 之 使用JSP+DAO完成用户登陆
2009-04-28 10:52 987使用JSP+DAO完成用户登陆 import java. ... -
JSP复习笔记——第10章 连接数据库 之 DAO设计模式
2009-04-28 10:51 1416之前的开发可以发现以下问题: 1、 所有的JDBC代码写在JS ... -
JSP复习笔记——第10章 连接数据库 之 JSP+JDBC留言管理程序
2009-04-28 10:48 1323JSP+JDBC留言管理程序 -- 创建表 -- 用户表 ... -
JSP复习笔记——第10章 连接数据库 之 使用JSP基于数据库完成用户登陆程序
2009-04-28 10:45 1346使用JSP基于数据库完成用户登陆程序 使用Statement存 ... -
JSP复习笔记——第10章 连接数据库 之 使用数据源
2009-04-28 10:43 876JDBC基本操作过程: 打开数据库连接 操作数据库 ...
相关推荐
NULL 博文链接:https://cdxs2.iteye.com/blog/1926357
我们知道,Struts2完成参数传递处理工作的基础是OGNL和ValueStack。而在这个 过程中,我也把Struts2所要做的工作大致归纳为两个方面: 1. 对OGNL操作进行封装,完成OGNL表达式所表示的值到Java对象的值传递机制 2. ...
利用AJAX传递JSON数组,后台struts2的action接收。 详细代码简单易懂。
在struts2中可以在方法上传递相应的参数,不需要使用注解,直接使用参数名进行界面传递参数信息,并且可以在界面进行访问
本文主要介绍Struts2中参数传递方法,希望能给大家做一个参考。
这是根据uploadify3 2结合struts2搭建的文件上传环境 可以直接导入eclipse运行 每步实现基本都加了注释 以下是我碰到的问题: 1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里...
刚开始学struts2时,自己写的小工程。
struts2 验证框架,彻底简化判断页面传递过来的参数,必学内容
而随着Struts2的流行,就应该研究一下在Struts2下如何利用JasperReports进行报表输出。本示例比较简单,采用的数据源即为JavaBean,而没有采用复杂的数据库,其实原理是一样的。只是传递给JasperReports的参数随着...
fileID:要取消的列队文件id 不传递参数时 表示取消列队中的第一个文件上传 传递星号 表示取消列队中的所有文件上传 suppressEvent:设置为true将禁止onUploadCancel事件 取值:String "true"|"事件...
第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...
struts2的资料以及struts的ui标签的使用,struts2如何和ajax进行参数传递
程序参考源代码 博文链接:https://honly-java.iteye.com/blog/1605764
内容: 1、OGNL —— 数据运转的催化剂 2、Result机制,让视图更丰富 ...5、Struts2中的参数传递 6、标签库,永恒的争论话题 7、拦截器详解 8、配置,灵活还是简单? 9、深入plugin 10、在Struts2中使用OGNL
uploadify+struts2+json 前台动态向后台传数据,并显示后台返回参数完成文件上传功能
struts result类型中redirect与redirectAction的使用 包括参数传递。
4、在action中把HttpServletRequest参数和HttpServletResponse参数传递过去。 5、在过滤器中通过java的反射机制调用action。 6、详细过程参照cn.itcast.action包中的内容 3Struts2介绍 1、struts2是apache组织发明的...
内容包括ognl,result机制,struts2配置详解,struts2中的action,struts2中的参数传递,标签库,拦截器的详解,深入plugin
3.3 把静态参数传递给一个动作 41 3.4 ActionSupport类 41 3.5 结果 42 3.5.1 Chain 43 3.5.2 Dispatcher 44 3.5.3 FreeMarker 44 3.5.4 HttpHeader 44 3.5.5 Redirect 45 3.5.6 Redirect Action 46 3.5.7 ...
刚完成的 日本的项目 struts2 jdom解析 远端服务器 xml 文件 自定义struts2 标签分页 分页只需要向 其 传递2参数 页面上 自定义的标签 自动分页