SSH 与jQuery的Ajax整合时,返回数据的时失败的解决方法

本文介绍了一个注册页面中检查用户名是否已被注册的功能遇到的问题及解决方案。通过调整Action类中的get方法,成功解决了Ajax请求返回500错误的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做项目的是否发现的一个小BUG,我也是在百度里面找到的答案!希望对大家有所帮助!

这是一个注册页面检查用户名是否已经被注册的功能!

首先看Ajax代码:

<span style="font-size:14px;">$.ajax({
		url:"../../ajaxLoginAction",
		data:{loginname:value},
		type:"POST",
		dataType:"json",
		async:false,
		cache:false,
		success:function(result){</span>
<span style="font-size:14px;"><span style="white-space: pre;">			</span>//返回结果是一个boolean类型,用了SSH之后,一直返回不来这里 浏览器提示一个500的错误
			if(!result.result){
				$("#" + id + "Error").text("*用户名已存在");
				showError($("#" + id + "Error"));
				return false;
			}
		}
	});
	return true;</span>


applicationContext.xml文件:

只列出了相关的bean部分。

<bean id="userDao" class="com.zhou.dao.UserDao">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	
	<bean id="userService" class="com.zhou.service.UserService">
		<property name="userDao" ref="userDao"/>
	</bean>
		  
	<bean id="RegisterAction" class="com.zhou.action.RegisterAction">
		<property name="us" ref="userService"/>
	</bean>

struts.xml文件:

<span style="font-size:14px;"><!-- Ajax验证用户名是否已经被注册 -->
    <package name="strutsjson" extends="json-default">    
        <action name="ajaxLoginAction"  
         class="RegisterAction" >    
             <result type="json"></result>    
        </action>    
    </package></span>

<span style="font-size:24px;color:#ff0000;">最后是action文件:</span>
package com.zhou.action;

import com.opensymphony.xwork2.Action;
import com.zhou.service.IUserService;
import com.zhou.service.UserService;


public class RegisterAction implements Action {
	private IUserService us;
	private String loginname;
	private boolean result;
	/**
	 * 判断用户名是否存在的action
	 */
	public String execute() throws Exception {
		boolean flag = us.ajaxValidateLoginname(loginname);
		System.out.println(flag);
		this.setResult(flag);
		return SUCCESS;
	}
	public String getLoginname() {
		return loginname;
	}
	public void setLoginname(String loginname) {
		this.loginname = loginname;
	}
	public boolean isResult() {
		return result;
	}
	public void setResult(boolean result) {
		this.result = result;
	}
	public void setUs(IUserService us) {
		this.us = us;
	}
	
}
注意这个这个action,一般人可能直接把service声明,然后用MyEclipse创建get和set方法。但是这样Ajax总是返回不了结果,在网上查了一些方法,最后还是一个简单的方法解决了问题: 就是去掉get方法就OK了!大家如果遇到这个问题可以尝试一下哦!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值