Struts2平时用的时候遗忘和新的知识点
来源:互联网 发布:卡特新秀赛季数据 编辑:程序博客网 时间:2024/06/05 23:53
1.
<s:iterator value="schoolBeautyOrHunks" var="user"> <s:property value="#user.email"/><!-- var这个别名,是将当前遍历对象以 user----当前对象 key---value形式存在于map栈 ,所以取值的时候要用#--></s:iterator>
2.<s:debug>这个标签在用的时候需要注意:如果采用了懒加载机制,此标签会导致出错,因为<s:debug>会将一个javabean里所有属性都加载出来显示在s:debug上,而此时懒加载了,s:debug就无法显示属性。
3.值桟的生命周期是一次requert,所以当多个action之间进行redirectAction(重定向)跳转,值桟里只有最后一个action的实例在栈顶。如果是chain跳转,那么经过几个action,值桟中就存在几个action。
4.<s:date name="publishTime" format="yyyy-MM-dd HH:mm:ss.SSS" /> struts2的这个日期标签是用来显示值的,而不是用于设置的,因为没文本框让你设值。
5.struts2中如果需要使用redirectAction跳转,而且希望在跳转的时候给action带几个参数,可以在跳转前的那个action将参数放到map栈中,在xml中用%{属性}或${属性}取值
注意:如果要传递多个参数给xml,那么url肯定需要用&进行分割,但是&在xml中关键字,需要进行转义&否则的话struts2无法运行,访问项目一直404。<action name="AdminActivityCheck_*" class="com.wah.activity.action.Activity_AdminCheckAction" method="{1}"><result name="checkUserJoinActivityAction" type="redirectAction">AdminActivity_checkUserJoinActivityUi.action?id=%{activityId}&a m p;name=%{name}</result></action>
6.struts2和ajax整合的时候,返回ajax数据返回的是action中所有get方法后第一个字母小写的属性,例如getName,就会返回name属性。但是,因为在action中,是注入了service的,如果用xml配置的方式,那么势必要生成service的get和set方法,这时,ajax会把service当作一个属性返回给ajax的,就会出错了。解决办法就是在service的get方法上加@JSON(serialize=false),让服务器不将这个属性作为json数据返回给客户端
7.在ajax和struts2结合的时候发现,返回类型为String的get方法都会在执行完指定方法后执行一遍。所以以下做法是很要命的,因为访问的url只是要执行showMenuitemById,而getAllMenuitem是自动执行的,两个方法中都用到了menuitemList全局变量,所以最后页面拿到的json数据是错误的。
正确的方法,就将那个get方法改为其他名字,例如show什么的。这样就不会去执行了。
public String getAllMenuitem(){this.menuitemList = menuitemService.getAllMenuitem();return SUCCESS;}public String showMenuitemById(){menuitemList = menuitemService.showMenuitemById(this.getModel().getPid());return SUCCESS;}
8.struts2和ajax结合的时候发现,当客户端发送请求后,服务器查询了hibernate一对多的一的这一方,然后发送json数据给客户端,此时就算web.xml中配置了OpenSessionInViewFilter,也会因为懒加载多的一方,因为session关闭问题而出异常。
这是为什么呢?
原因就是,由于服务器返回的是json对象,而不是一张页面数据,OpenSessionInViewFilter是不起作用的,所以获取在获取多的一方的时候session已经关闭了。
解决办法:让其忽略多的一方属性,这样多的一方就不会返回到客户端,也就不会因为客户端在一的一方取多的一方时,而出现session关闭的异常了。
如果返回的数据必须是多表的,那么在dao层就将三个表需要的数据查询出来。
public class Order{ private Set<User> users; @JSON(serialize=false)// private Set<User> getUsers(){ return users; }}
- Struts2平时用的时候遗忘和新的知识点
- 遗忘的一些知识点
- SQLite的一些须知和容易遗忘的知识点
- 一些平时用的iOS 10的小知识点
- android平时编码的一些小知识点
- sql中经常遗忘的知识点
- 安卓容易遗忘的知识点
- java基础,自己遗忘的知识点
- 15个易遗忘的java知识点
- 15个易遗忘的java知识点
- MySQL容易遗忘的知识点 - Draft
- Java基础-巩固-比较遗忘的知识点
- 平时用的STL
- 容易被遗忘的CSS3新属性
- 【笔试or面试】笔试题、面试题和平时小知识点的积累
- 记录一些常用和不常用的iOS知识点,防止遗忘丢失。
- 自己平时在做项目时候的一些总结
- 简单记录平时常用容易混淆的小知识点
- Android开发之调用系统图库及相机
- 利用STL函数swap进行vector内的数据交换
- Spring2.0和Spring3.0的变化差异
- 安卓开发莫名其妙的无法加载程序到模拟器中,模拟器可以正常启动
- Java Assert使用<转>
- Struts2平时用的时候遗忘和新的知识点
- zabbix学习总结
- shell 计算两个时间之差
- 将excel表格导入到DataGridView
- MFC总结之CListCtrl用法及技巧(一)
- Linux下网络性能测试Netperf工具介绍及安装
- Android String.trim()讲解
- C++中map和hash_map的区别
- toj1171 Goldbach's Conjecture