Struts2
我叫阿狸猫
这个作者很懒,什么都没留下…
展开
-
Struts2第一个程序
Struts2的优点:在体系结构方面更优秀:类更少, 更高效: 在 Struts2 中无需使用 “ActionForm” 来封装请求参数. 扩展更容易: Struts2 通过拦截器完成了框架的大部分工作. 在 Struts2 中插入一个拦截器对象相当简便易行. 更容易测试:即使不使用浏览器也可以对基于 Struts2 的应用进行测试搭建 Struts2 的环境:原创 2013-09-02 00:05:58 · 811 阅读 · 0 评论 -
struts2中用setValue可以改变对象栈中指定属性的值
/** * 利用setValue方法可以改变对象栈中的属性值 * 当提交一个请求的时候,当前请求的action在对象栈中,所以action中的属性是直接暴露在对象栈中 * 说白了就是可以直接访问action中的属性,除此之外还可以进行改变action中属性的值的操作。(前提是:被改变的属性必须有set和get方法) * */public class ChangeValueSta原创 2013-09-10 17:02:41 · 1088 阅读 · 0 评论 -
struts2使用插件(jfreechart图表插件)
1.导入jar包:[jcommon-1.0.20.jar],[jfreechart-1.0.16.jar],[struts2-jfreechart-plugin-2.3.15.1.jar](struts2整合第三方插件的jar包,这里针对jfreechart,其他的去struts2下载的lib文件夹里找plugin结尾的jar包)2.使用第三方插件的时候,在它们的jar包中肯定会提供一个str原创 2013-10-11 22:55:11 · 1174 阅读 · 0 评论 -
用struts2取url后参数的值,Map栈里取值千万要注意的问题
ActionContext.getContext().put("testMapStack", user);将一个user对象放入map栈中在前台页面取值,获取user对象的name属性时可以当要取url后参数的值时:http://localhost:8090/WAH/PrivateLetterList?userName=xxc&passWord=原创 2013-09-26 23:12:32 · 1909 阅读 · 0 评论 -
struts2常用标签
1.*用map集合测试public class TestTagAction extends ActionSupport { public String execute() throws Exception { Map map = new HashMap(); map.put("p1", new Person("1","xxc1")); map.put("p2", new P原创 2013-09-10 17:41:45 · 997 阅读 · 0 评论 -
struts2的静态注入(ObjectFactory)
ObjectFactory与静态注入 1、ObjectFactory:对象工厂 struts2的action是需要产生对象 struts2中拦截器是需要创建的 struts2的各种结果集也需要创建对象 2、ObjectFactory中的各种方法 buildAction是用来创建action的原创 2013-10-14 22:54:55 · 2091 阅读 · 0 评论 -
struts2结果集原理和自定义结果集 如果result标签中写了其他内容该怎么写跳转页面
1.从上图可以看出,如果要定义结果集就必须实现Result接口。2.如果要跳转到中定义的结果页面中,就需要继承StrutsResultSupport抽象类,因为这个类中的execute方法中有获取标签中定义的结果页面名称的操作。3.如果不需要跳转到标签中指定的结果页面,那么只要直接继承Result接口即可。自定义结果集:/** * 继承StrutsResult原创 2013-09-14 20:22:46 · 2372 阅读 · 0 评论 -
struts2的缺点(自认为)
struts2的缺点: 1、整个的核心流程写死了,想动态的添加内容那是不可能的 2、struts2的错误处理 action-->throws--->defaultActionInvocation.invoke--->throws--> StrutsActionProxy.execute--->throws-->Dispatcher.serviceA原创 2013-10-17 22:23:48 · 1286 阅读 · 0 评论 -
struts2与ajax结合
1.首先要搞清楚$.post和$ajax的区别:$.post:这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。$.ajax:当传递给服务器的数据复杂类型数据的时候,$.post方法就无效了。json格式: 简单json格式 {原创 2013-10-18 11:20:34 · 1673 阅读 · 0 评论 -
struts2的工作流程
1.当服务器启动的时候,会去执行org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤器里的init方法 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2原创 2013-10-17 15:04:47 · 4797 阅读 · 0 评论 -
struts2值桟
狭义值桟:通常指的是实现com.opensymphony.xwork2.util.ValueStack接口的对象,目前就是com.opensymphony.xwork2.ognl.OgnlValueStack对象。也就是上图左边部分广义值桟:通常指的是ActionContext对象,ActionContext是Action运行的上下文,每个ActionContext是一个基本的原创 2013-09-10 12:45:10 · 1124 阅读 · 0 评论 -
Struts2平时用的时候遗忘和新的知识点
1.原创 2013-09-22 17:20:10 · 916 阅读 · 0 评论 -
Class org.apache.struts2.json.JSONWriter can not access a member of class org.springframework.aop.in
引起这个错误的原因有:1.struts2和struts2自带的ajax插件整合的的时候,服务器端返回的数据是action中以get开始的方法(get后的第一个字母小写的属性)而action在用xml方式注入service的时候需要写set和get方法,所以当服务器返回json数据的时候会将service也作为json数据返回所以会出以下错误。解决办法就是在service的get方法上加@JSO原创 2013-11-05 12:36:50 · 2757 阅读 · 0 评论 -
struts2与ajax结合传递数据到后台有两种形式
1.var data = $("form").serialize(); 然后在ajax传递数据的时候将data传递到后台2.用已有的转换json插件,将字符串转成json对象传递给后台。原创 2013-11-15 16:31:28 · 2280 阅读 · 0 评论 -
struts2服务器端的表单验证
第一种验证方式:(有局限性,有很对字段的话就不好用了)1、在页面中用标签显示错误信息, 如果struts.xml中定义了 就一定要加否 则是不会显示错误信息的 如果没有定义,那么如果用struts2标签后,会自动在对应的组件后面显示验证的错误信息2、在action中写validate方法public void valida原创 2013-10-09 20:15:36 · 870 阅读 · 0 评论 -
uploadify 上传页面有个404请求
代码很轻松的就嵌入到页面中去了,看了下官方的几个配置,感觉挺容易上手的,本来以为就这样配置算完成了,但是今天在FireFox下使用FireBug调试页面时发现了诡异的GET请求,请求的是当前页面的根,比如页面是/tickets/create,那么请求的就是/tickets/,恰恰这个路径我没有设置路由,也就是说请求将返回一个HTTP 404 Not Found的错误,经过进一步的跟踪发现了问题转载 2014-01-13 15:12:26 · 1941 阅读 · 0 评论 -
struts2防止重复提交
登录页面: 帐号 密码 Action:public class AgainSubmitAction extends ActionSupport { public String success() throws Exception { return SUCCESS; } public String login(){ return "log原创 2013-09-12 22:56:30 · 970 阅读 · 0 评论 -
struts2在struts.xml文件中获取或设置action中的属性
1.在struts.xml中设置就必须要有set方法2.在struts.xml取值就必须要有get方法 哈哈哈哈哈 /testSetValue.jsp /testGetValue.jsp?id=${age} Action:publi原创 2013-10-08 23:09:12 · 3335 阅读 · 0 评论 -
struts2的继承ActionSuport类的作用
1.这个类提供了一些常量:SUCCESS,ERROR等,在开发中可以使用2.这个类实现了Validateable(验证)TextProvider(国际化)等方法,我们继承了这个类以后覆写这些方法可以很方便的完成验证,国际化等功能。原创 2013-10-10 09:03:02 · 1368 阅读 · 0 评论 -
Struts2的Action类
原创 2013-09-02 08:45:31 · 598 阅读 · 0 评论 -
Struts2两种解耦访问WEB资源的方式
一.通过com.opensymphony.xwork2.ActionContextpublic Object get(Object key): ActionContext 类中没有提供类似 getRequest() 这样的方法来获取 HttpServletRequest 对应的 Map 对象. 要得到 HttpServletRequest 对应的 Map 对象, 可以通过为 get() 方原创 2013-09-02 15:28:50 · 1415 阅读 · 0 评论 -
Struts2的配置文件中bean最简单配置
/WEB-INF/loginAndlogout/login.jsp /WEB-INF/loginAndlogout/login.jsp 原因是:标签中配置了extends="struts-default",那么就会去struts-default.xml中找的包 我们去com.opensymphony.xwork2.ActionSu原创 2013-09-02 19:26:24 · 1019 阅读 · 0 评论 -
Struts2中<result>标签
原创 2013-09-03 22:40:27 · 826 阅读 · 0 评论 -
Struts2通配符映射及动态方法调用
原创 2013-09-03 22:51:01 · 778 阅读 · 0 评论 -
struts2拦截器
Struts2的拦截器就是一个实现了Interceptor接口的类。自定义Interceptor一:public class MyIntercept implements Interceptor { private Integer age; @Override public void destroy() { System.out.println("销毁方法"); }原创 2013-09-12 10:22:14 · 716 阅读 · 0 评论 -
struts2的上下文
原创 2013-09-14 21:46:18 · 818 阅读 · 0 评论 -
Struts2的访问路径为什么可以用.action或不写,以及Struts2访问路径的搜索方式
问:为何href里请求路径的格式可以写action也可不写?User-SaveUser-Delete答:原因是:struts2-core-2.2.1.jar下的org.apache.struts2包下的default.properties 配置了struts.action.extension=action,, 即:既可以.action结尾,也可以不写原创 2013-09-02 00:10:11 · 3032 阅读 · 0 评论 -
struts2文件上传
1.首先要想文件上传就需要做如下3个最基本步骤 (1)表单提交的method="post" (2)表单enctype="multipart/form-data" (3)上传组件的type="file"2.使用struts2上传文件的基本步骤 (1)Action里的File类型的属性名要和上传文件组件的name属性名一致 upfile (2)属原创 2013-10-09 17:00:23 · 951 阅读 · 0 评论 -
struts2自定义类型转换器
1.创建一个转换类,这个类需要继承StrutsTypeConverter,并实现它的两个抽象方法 (1)将页面上获取的String类型数据转换成执行类型(返回值就是action属性要接收的值) public Object convertFromString(Map map, String[] str, Class clzz) (2)将指定类型转换为Str原创 2013-10-09 14:40:21 · 845 阅读 · 0 评论 -
struts2中的配置文件的<constant>标签(struts.xml自动加载)
和同级。大致看了下struts2源码,其中有一个Dispather类在进行初始化init的时候:从上图可以看出,首先是加载了org.apache.struts2包下的default.properties然后再按顺序加载struts-default.xml,struts-plugin.xml,struts.xml,并且这三个xml文件的dtd约束都是一样的。所以如果想覆盖前两原创 2013-09-10 17:30:34 · 1366 阅读 · 0 评论 -
Struts2的属性驱动原理和模型驱动原理
属性驱动:(靠的是ParameterInterceptor拦截器)* 在action中设置属性,属性的名称和页面上表单中的name属性的名称保持一致* 在action中的属性,必须有set和get方法* 好处: 这样设计可以保证action与servlet容器松耦合属性驱动原理图:例子:表单页面 帐号 密码原创 2013-09-12 21:13:06 · 4540 阅读 · 4 评论