jQuery json与Spring结合的问题
@JSON(serialize=false)
json和Spring结合的时候 应该注意不应该 序列化 Spring中依赖注入的东西 jar包也应该struts2-json-plugin-2.2.1.1.jar json-lib-2.1-jdk15.jar ezmorph-1.0.3.jar
这里操作 防止json 将注入的bean 序列化。 或者在action 中配置 不被序列化的属性 <result type="json"><param
name="excludeProperties">JsonService</param></result>
struts2+spring+hibernate js框架应用了Jquery 数据传输json
json与spring 的冲突 出现jsonwriter异常下面具体操作!用@JSON(serialize=false) 防止序列化
当struts2的action配置引入json 时,例如:
<package name="com.pdna.student.action.LessonAction_xl" extends="json-default">
<action name="jsontest" class="LessonAction_xl" method="jsontest">
<result type="json"></result>
</action>
</package>
此时引入json 插件 返回数据自动封为json数据,前台接受
fucntion jsontest(){
var url="jsontest.action";
//dt为返回数据
jQuery.post(url,function(dt){
//alert(dt) //可以查看返回的 dt 格式
var tpy = eval('(' + dt+ ')');
})
}
action 中的方法
private List publist;
private JsonService jsonservice; //spring 注入的service
public String jsontest(){
try{
publist=jsontestservice.jsontest()
return SUCCESS;
}cacth(Exception ex){
ex.printStackTrace();
return ERROR;
}
}
//get -set 方法
//这里操作 防止json 将注入的bean 序列化。 或者在action 中配置 不被序列化的属性 <result type="json"><param
name="excludeProperties">JsonService</param></result>
@JSON(serialize=false)
public JsonService getJsonService() {
return jsonservice;
}
public void setJsonService(JsonService jsonservice) {
this.jsonservice = jsonservice;
}
public List getPublist() {
return publist;
}
public void setPublist(List publist) {
this.publist = publist;
}
service中的 操作方法不在这里写了
使用json 时候报
Positioned Update not supported 异常
出现此类异常 主要原因是在操作的 hibernate dao 类有 映射关系
由于jsonplugin并不区分类和动态生成的类,所以也会试图序列化hibernateLazyInitializer属性,从而导致出现上述的异常,
网上会找到很多的解决办法,我的解决方法
方法一:将 映射关系的延迟加载lazy="false";
方法二:hibernate 完全交给spring 管理
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
http://huqilong.blog.51cto.com/53638/136802
http://www.360doc.com/content/10/0731/19/117897_42788515.shtml
1.JQuery的Ajax实现并与struts2的结合
2.配置过程:
a.新建web项目;
b.修改web.xml文件
c.在src下添加struts.xml文件,添加jar包支持:freemarker.jar ognl.jar struts2-core.jar commons-fileupload.jar
commons-io.jar xwork-core-2.1.6.jar(这个包加上版本号,是因为下文要提到它),注意jar包支持
这六个包是struts必须依赖的jar包
d.配置jsp文件,在jsp里面添加jquery支持
e.配置action
f ( 一)在struts2.1.6之前的版本:
添加相应的json包:json-lib.jar jsonplugin.jar 这里要注意很重要的一点,因为json大量引用了 Apache commons的包,所以这里要一并加入,
需要的commons包共4个,除了commons的包外,还需要引入一个 ezmorph的包,所以这一步一共要引入7个包,列出如下:
commons-collections.jar commons-lang.jar
commons- beanutils.jar commons-logging.jar ezmorph.jar 再加上json的两个包共七个