1,Struts2与Ajax整合的缺点
无论采用$.post还是$.ajax都捕获不到服务器产生的错误($.ajax捕获错误在servlet能做到),是struts2内部设计的不好,不是Ajax的问题。
2,$.post()与$.ajax()大家都知道,$.post()方法与$.ajax()方法的区别:
$.post()方法:不能截获异常;
$.ajax()方法:可以截获异常;
3,需要加入jar包(struts版本下的,不同版本会报错)
json-lib-2.1-jdk15.jar
struts2-json-plugin-2.3.1.2.jar
struts2-junit-plugin-2.3.1.2.jar
----------------------------------------------------自定义结果集(struts2-ajax)---------------------------------------
1,jsp页面:
<script type="text/javascript">
$(function(){
coustom.inintEvent();
});
</script>
<td><s:textfield name="name"></s:textfield></td>
<td><s:label id="message"></s:label> </td>
2,js
var coustom = {
//############################自定义结果集
inintEvent:function(){
$("input[name='name']").unbind("blur");
$("input[name='name']").bind("blur", function(){
coustom.check_coustomAction($(this).val());
});
},
check_coustomAction:function(name){
var parameter={
'name':name
};
var xhl = $.post("ajaxjson_check.action", parameter, function(data){
$("#message").text(xhl.responseText);
if(xhl.responseText == "该用户名可以使用"){
$("#message").css("color", "blue");
}else{
$("#message").css("color","red");
}
});
},
//############################struts2与json整合
inintEvent2:function(){
$("input[name='name']").unbind("blur");
$("input[name='name']").bind("blur", function(){
coustom.check_coustomAction2($(this).val());
});
},
check_coustomAction2:function(name){
var parameter={
'name':name
};
$.ajax({
type:"POST",
url:"ajaxjson2_check.action",
data:parameter,
dateType:"json",
success:function(data){
$("#message").text(data.message);
},
error:function(){
$("#message").text("连接失败");//这里得不到提示,有错误会走模版页面
}
});
}
};
3,action
/**
*ajax调用
*/
public String check(){
Long l = coustomservice.findCoustom(this.model.getName());
if (l != 0) {
ActionContext.getContext().getValueStack().push("该用户名已占用");
}else{
ActionContext.getContext().getValueStack().push("该用户名可以使用");
}
return SUCCESS;
}
4,AjaxAction.java
public class AjaxResutl implements Result{
@Override
public void execute(ActionInvocation arg0) throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
String message = ActionContext.getContext().getValueStack().peek().toString();
response.getWriter().print(message);
}
}
5,struts.xml
<package name="ajax" namespace="/" extends="all">
<result-types>
<result-type name="ajaxResult" class="ssh.action.sturts2jsonajax.AjaxResutl"></result-type>
</result-types>
</package>
<package name="Coustom" namespace="/" extends="all">
<action name="customAction_*" class="ssh.action.sturts2jsonajax.CustomAction" method="{1}">
<result name="toAddUI">/jsp/struts2jsonajax/coustomadd.jsp</result>
</action>
</package>
<!-- result 中的type对应package中ajax的result -->
<package name="ajaxjson" namespace="/" extends="ajax">
<action name="ajaxjson_*" class="ssh.action.sturts2jsonajax.CustomAction" method="{1}">
<result type="ajaxResult"></result>
</action>
</package>
-----------------------------------------------(struts2-ajax-json)-------------------------------------------------------
String message 加到javabean coustom中,这个字段不需和数据库字段关联,临时的ajax获取信息。
(一般通过get,set就行了,这个系统中不行,原因,未知)
1,jsp
<script type="text/javascript">
$(function(){
coustom.inintEvent2();
});
</script>
2,js
同上
3,action
/**
*ajax调用
*/
public String check(){
try {
// int a = 1/0;
Long l = coustomservice.findCoustom(model.getName());
if (l != 0) {
model.setMessage("该用户已被占用");
// ActionContext.getContext().getValueStack().push(message);
}else{
model.setMessage("该用户可以使用");
// ActionContext.getContext().getValueStack().push(message);
}
} catch (Exception e) {
// model.setMessage("查询异常!");
model.setMessage(e.toString());
}
return SUCCESS;
}
4,struts.xml
<package name="Coustom2" namespace="/" extends="all">
<action name="customAction2_*" class="ssh.action.sturts2jsonajax.CustomAction2" method="{1}">
<result name="toAddUI2">/jsp/struts2jsonajax/coustomadd2.jsp</result>
</action>
</package>
<package name="coustom2_json" namespace="/" extends="json-default">
<action name="ajaxjson2_*" class="ssh.action.sturts2jsonajax.CustomAction2" method="{1}">
<result type="json"></result>
</action>
</package>
分享到:
相关推荐
json2+jsonplugin struts2整合ajax时,使用json时需要的jar包。。。。。。。。。。。。
1.直接导入Myeclipse直接在tomcat上发布即可运行, http://localhost:8090/StrutsAjax/ 2.附带超级详细的教程
struts2+json+jquery实现ajax数据的存取
(struts2 json Ajax 整合所需全部jar包
struts2使用jquery整合ajax、json用户登录实例源码
struts2jsonajax(ext)整合(下载后注意改web名称)
涉及了数据(MYSQL)设计,登录实现,以及使用JSON传输数据,Ajax发送请求与处理等,特别适合初学者学习Java WEB的学习材料
struts2+easyUI+ajax+json用户登验证,代码没问题,可运行,适合初学者理解原理!
JSON插件是Struts2的Ajax插件,通过利用JSON插件,允许开发者以非常灵活的方式开发AJAX应用。 struts2在配置文件中可以指定返回的结果集的类型为:json.
自己整理的jquery+json+struts2异步传输的例子,包括异步提交form,异步传输json对象。
Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,...
struts2+ajax+easyui+json+datagrid增,删,改,查,分页,排序,有数据库
3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...
Struts spring ibatis json整合实例(附完整jar包,无数据库文件),前台使用jquery。附带用jquery.ajax请求后台返回json格式数据!
ajax 调用Struts 输出 JSon 的登录
a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立struts.xml,复制头文件进去。将applicationContext.xml移到WEB-INF目录下。web容器...
用Struts2,Spring,Ibatis整合的框架,前端数据显示用jquery 中的ajax请求,返回json格式的数据
我们从Web 2.0的随波逐流,Ajax的大放异彩说起,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2...
页面请求全部使用ajax请求,数据传输以JSON格式传输,并且使用的是struts2 的JSON技术。页面js使用Jquery1.6 ,在界面的右端展示了增删改查操作,并且界面布局使用的是div的布局方式。这是今天 在一家公司做上机试题...
Struts2 是一个非常优秀的MVC框架,基于Model2...整合Ajax支持:json插件 Struts2的今生前世: 1.早期开发模型Servlet+JSP+JavaBean显得力不从心: 流程凌乱、数据传递无序、缺乏辅助功能。 2.MVC模式的轻量级Web应