struts框架ajax代码(基于Struts2 的ajax并不是及时刷新 ajax不算太熟悉,请高手指)

本文目录
- 基于Struts2 的ajax并不是及时刷新 ajax不算太熟悉,请高手指
- ajax 与struts2
- Struts2框架怎样在Ajax请求中接收数组或List集合参数
- Struts1框架中如何用Ajax将后台(Action)返回的List数据显示到隐藏的div中
- struts与ajax结合的问题
- 如何在struts1.2中返回xml数据岛字符串给ajax,在ajax中如何获取谢谢
- 我要向一用ajax想一个struts2的action传两个参数,代码如何写
- 可以给一个ajax 实例吗 简单就好 返回的数据转换是text dataType : “text“, 有struts jsp action 的代码
- struts2框架,用ajax实现异步登陆的代码
- struts2中怎样应用ajax控制提交请求后,页面不跳转,同时alert出相关处理信息
基于Struts2 的ajax并不是及时刷新 ajax不算太熟悉,请高手指
首先,struts2进行权限验证是用拦截器做的
一个简单的登录拦截器示例如下:
package com.zdf.interceptor;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.zdf.entity.Admin;
@SuppressWarnings("serial")
public class LoginInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Admin admin = (Admin)invocation.getInvocationContext().getSession().get("ADMIN");
if(admin!=null){
return invocation.invoke();
}else{
return Action.LOGIN;
}
}
}
ajax 与struts2
ajax不刷新页面 它直接把succ.jsp中的内容抓到form表单页了
/*表单页*/
$().ready(function(){
/。。。省略
succsss:function(msg){
if(ms=="userd"){
//情况之一,假如表示已经被使用
alert("已经被使用");
}else if(msg==“nouserd”){
//情况之一,假如表示没有被使用
alert("没有被使用");
如果要跳转的话 window。localtion.href=".....................。jsp"
}
}
});
action类
将方法的返回类型String 改为void,去掉xml文件中action的《result》标签
if(username.equals("tang")){
//pw.println("该用户名已被使用");这样写也可以 但为了简单用单词表示
pw.println("userd")//不管写什么都一样,仅是一个参数只要跟jsp页面对应起来即可
// return null; 去掉return
}else{
// return SUCCESS;
pw.println("nouserd")//不管写什么都一样,仅是一个参数
}
结束语:这不是正宗的struts2跟 ajax。这可以算是servlet与jsp。struts2与ajax结合请参照dwr dojo框架
Struts2框架怎样在Ajax请求中接收数组或List集合参数
具体实现方式应该是:
// 假设有参数数组
var userIds = ;
// 将其转换为Object类型
var params = {} ;
var index = 0 ;
for(var n in userIds) {
params = n ;
}
// Action接收代码
private List《Long》 userIds ;
public void setUserIds(List《Long》 userIds) {
this.userIds = userIds ;
}
Struts1框架中如何用Ajax将后台(Action)返回的List数据显示到隐藏的div中
用json这种数据格式,ajax不支持直接处理java的list数据,增加一个action处理list数据,将它们转换成json数据格式,页面方面ajax框架的jquery处理json数据格式将它们放到隐藏div中。
struts与ajax结合的问题
1、首先应该确认是不是提交成功了。
用System.out.println();随便输出东西就可以确认了。
如果没能提交上去,那么可以先不用Ajax方法提交,用普通方法提交来确认你的Action配置有没有问题。确认Action配置没问题了,再用Ajax方法提交。
2、提交没问题的情况下,确认请求参数是不是成功取得。
String num = request.getParameter("num1");
System.out.println("num:" + num );
3、最后一步是给客户端正确的响应内容。
首先要清楚一件事:正常来说每一次请求最后都是要给客户端响应的。也就说要给客户端送回东西。你可以通过返回ActionForward实例完成响应,也可以直接通过response来写响应内容。
注:我觉得你的验证方法(valNumOne)有问题,没见过返回ActionForward的验证方法。一步一步查,最后确定问题在哪个环节。还是解决不了的话再拿上来,那样大家就容易一眼看出问题了。
如何在struts1.2中返回xml数据岛字符串给ajax,在ajax中如何获取谢谢
如果你只是想传递字符窜的话在action中要加入下面两行代码
response.setContentType("text/text;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
然后用:response.getWriter().print("XXX");
要使用xml文件传递数据的话在action中加入另外两行代码:
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
下面的我给你个例子吧,希望你能看明白:
public ActionForward showDiaryByID(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
DiaryForm DiaryForm = (DiaryForm) form;
UserInfo ui = (UserInfo) request.getSession().getAttribute("uf");
response.setContentType("text/xml;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
String userid = ui.getUserid();
DiaryInfo di = new DiaryInfo();
di.setUserid(userid);
List list = new DiaryService().showDiaryByID(di);
StringBuffer sb = new StringBuffer();
sb.append("《response》");
sb.append("《root》");
for (int i = list.size()-5; i 《 list.size(); i++) {
DiaryInfo df = (DiaryInfo) list.get(i);
sb.append("《item》");
sb.append("《diaryId》" + df.getDiaryId() + "《/diaryId》");
sb.append("《title》" + df.getTitle() + "《/title》");
sb.append("《content》" + df.getContent() + "《/content》");
sb.append("《date》" + df.getDate() + "《/date》");
sb.append("《userid》" + df.getUserid() + "《/userid》");
sb.append("《/item》");
}
sb.append("《/root》");
sb.append("《/response》");
try {
PrintWriter out = response.getWriter();
out.print(sb.toString());
out.close();
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
获取是:var items=xmlHttpRequest.responseXML.getElementsByTagName("item");(xmlHttpRequest是判断浏览器的变量)
我要向一用ajax想一个struts2的action传两个参数,代码如何写
$(document).ready(function(){
//b01是提交按钮ID
$("#b01").click(function(){
$.ajax({
type: "GET",//也可以是POST
url:“action路径",
async:false,//是否是异步提交,默认是true,false代表同步。
data:{参数名1:参数值1,参数名2:参数值2}
success:function(data){
//data就是调用action后返回的结果,操作该结果就可以。
}
});
});
});
可以给一个ajax 实例吗 简单就好 返回的数据转换是text dataType : “text“, 有struts jsp action 的代码
$.ajax({
url : "TestServlet",
type : "post",
data : "Spell="+encodeURI(Bspell)+"&BrandName="+encodeURI(BrandName)+"&TypeId="+TypeId+"&action=InsertBrand",
datatype : "json",
error : function(json) {
alert("请求失败稍后重试");
},
success : function(data) {
if(data != null && data != ""){
alert(data);
}
}
});
struts2框架,用ajax实现异步登陆的代码
struts.xml中,你的包要继承json-default这个包而不是原来的struts-default。《result type="json" name="..."》 前台ajax该怎么用还是怎么用
struts2中怎样应用ajax控制提交请求后,页面不跳转,同时alert出相关处理信息
异步通信,建议用jquery,方便点下面是个注册页面jquery的例子《script type="text/javascript" src="js/jquery-1.5.min.js" 》《/script》
$(document).ready(function(){
$("#btn").click(function(){
var u_id = $("#userId").val();
var u_pwd = $("#pwd").val();
var u_nkName = $("#userNickName").val();
var u_email = $("#userEmail").val();
alert(u_id+" "+u_pwd+" "+u_nkName+" "+u_email);
$.post("《%=request.getContextPath()%》/JqueryUser.do",
{
u_id:u_id,
u_pwd:u_pwd,
u_nkName:u_nkName,
u_email:u_email
},
function(data,status){
if(data == "fail1"){
$("#resultDIV ").innerHTML = "用户名已存在 ";
}else if(data == "fail2"){
$("#resultDIV ").innerHTML = "用户名输入不合法 ";
}else if(data == "fail3"){
$("#resultDIV ").innerHTML = "密码 输入不合法 ";
}else if(data == "fail4"){
$("#resultDIV ").innerHTML = "昵称 输入不合法 ";
}else if(data == "fail5"){
$("#resultDIV ").innerHTML = "邮箱 输入不合法 ";
}else if(data == "success"){
$("form").submit();
}
});
});
});
function里的data是返回值,你可以用它进行处理,$("#btn").click是id="btn"的被点击后产生的事件{里面的是传递的值};
下面是ajax的,麻烦的多
《script》《!--
function createXMLHttpRequest(){
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp) {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
function sendAJAXRequest(){
var userSex;
var userId = document.myForm.userId.value;
var pwd = document.myForm.pwd.value;
var userNickName = document.myForm.userNickName.value;
var userEmail = document.myForm.userEmail.value;
var userSex_1 = document.getElementsByName("userSex");
for(var i=0; i《userSex_1.length; i++){
if (userSex_1.checked ==true){
userSex = userSex_1.value;
break;
}
}
alert(userId+" "+pwd+" "+userNickName+ " "+userEmail+" "+userSex);
var requestURL = "《%=request.getContextPath()%》/ajaxQueryUser.do?userId=" +userId +"&pwd=" +pwd+"&userNickName="+userNickName+"&userEmail="+userEmail+"&userSex="+userSex;
var xmlHttp = createXMLHttpRequest();
xmlHttp.open("post", requestURL, true); // true表示异步通信
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4) {
if(xmlHttp.status == 200){
var response = xmlHttp.responseText;
if(response == "success"){
document.getElementById("resultDIV").innerHTML = "注册成功,正在跳转。。。。。 ";
setTimeout(function(){
location.href="《%=request.getContextPath()%》/main.do";
},3000);
}
else if(response == "fail1"){
document.getElementById("resultDIV").innerHTML = "用户名已存在 ";
}
else if(response == "fail2"){
document.getElementById("resultDIV").innerHTML = "用户名不能为空 ";
}
else if(response == "fail3"){
document.getElementById("resultDIV").innerHTML = "密码不能为空 ";
}
else if(response == "fail4"){
document.getElementById("resultDIV").innerHTML = " 昵称不能为空 ";
}
else if(response == "fail5"){
document.getElementById("resultDIV").innerHTML = "邮箱 不能为空 ";
}
else if(response == "fail6"){
document.getElementById("resultDIV").innerHTML = "请选择 性别 ";
}
}else{
alert("error"+xmlHttp.status);
}
}
}; //回调函数
xmlHttp.send(null);
}
《/script》

更多文章:
androidapp源码免费下载(如何实现APK的反编译得到APK的源码)
2026年9月22日 18:00
service pack 3(操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思)
2026年9月22日 10:20
html代码怎么写大佬教程(html网页的题来个大佬,写代码,题目在图上)
2026年9月22日 10:10
结构体内又一个struct(c++ 在结构体中再嵌入一个结构体如何调用)
2026年9月22日 09:40
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30




