各位高手,小弟是WEB开发的新手。现在正在做一个项目,使用struts2框架,现在需要实现一个功能:在登陆页面上输入用户名和密码,如果数据库没有此条信息,不刷新页面,弹出一个alert,提醒用户用户名或者密码错误,所以需要采用AJAX。可是我写好代码后,输入用户名,密码,前台压根没反应。前台登陆页面,我使用jquery来实现AJAX,代码如下:
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#sub").click(function() // 提交按钮的ID是sub
{
$.post(
"login.action", //相关的action
{
username:$("#username").val(), //用户名参数
pwd:$("#pwd").val() //密码参数
},
function(data,textStatus)
{
alert(data); //弹出一个alert,提醒用户用户名可能不正确。
});
});
})处理login的action里的execute如下:
public class LoginAjaxAction extends ActionSupport implements ServletResponseAware {private String jsonResult;
private HttpServletResponse response;
private String username;
private String pwd;//getter和setter方法省略
public String execute()throws Exception
{
DBConnector dc=new DBConnector() // 数据库连接类
AccountDao ad=new AccountDao(dc.getConnection());
String sql="select*from dbo.sys_account where NAME='"+getUsername()+"'and PASSWORD='"+getPwd()+"'";
AccountBean ab=ad.query(sql); //根据用户名查表,返回 用户账号类 的对象ab, ab有name和password属性。
if((ab.getName().equals("")||ab.getPassword().equals("")))
{
jsonResult="用户名或者密码不正确";
}response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonResult);
return SUCCESS;}各位高手能不能帮忙看看到底是哪儿错了?就这个问题,我搞了一天了。非常感谢各位的帮助!
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#sub").click(function() // 提交按钮的ID是sub
{
$.post(
"login.action", //相关的action
{
username:$("#username").val(), //用户名参数
pwd:$("#pwd").val() //密码参数
},
function(data,textStatus)
{
alert(data); //弹出一个alert,提醒用户用户名可能不正确。
});
});
})处理login的action里的execute如下:
public class LoginAjaxAction extends ActionSupport implements ServletResponseAware {private String jsonResult;
private HttpServletResponse response;
private String username;
private String pwd;//getter和setter方法省略
public String execute()throws Exception
{
DBConnector dc=new DBConnector() // 数据库连接类
AccountDao ad=new AccountDao(dc.getConnection());
String sql="select*from dbo.sys_account where NAME='"+getUsername()+"'and PASSWORD='"+getPwd()+"'";
AccountBean ab=ad.query(sql); //根据用户名查表,返回 用户账号类 的对象ab, ab有name和password属性。
if((ab.getName().equals("")||ab.getPassword().equals("")))
{
jsonResult="用户名或者密码不正确";
}response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonResult);
return SUCCESS;}各位高手能不能帮忙看看到底是哪儿错了?就这个问题,我搞了一天了。非常感谢各位的帮助!
解决方案 »
- 菜鸟求教。JAVA 日期 有小到大排序,请问怎么排
- 初学struts2帮帮忙!!!helloworld程序我的struts2为什么总是出现404错误!!!
- WebRoot目录为什么无法正确识别
- 关于validation.xml的问题
- 关于hibernate映射问题,急求!
- javamail接收出错!!
- 火狐下网页显示不完全,求帮助
- 程序中import javax.servlet.jsp.*;编译说打不到package javax.servlet.jsp does not exist
- 请问在applet中如何调用javabean?
- jsp中可以弹出一个对话框嘛??就像javascript中alert一样。。
- 请高手帮忙看看AJAX有时无响应
- 求java面试题目,机试 + 笔试??
response.getWriter().write(jsonResult);这个写完之后要调用close 方法关闭输出
$.ajax({
url:"",//请求地址
type:"post/get", //请求方式
data:{key:value,....},//参数
datatype:"json",//可不写
success:function(resp){
alert(resp);
}
});
这种方式很明了
response.getWriter().write(result);
}
如果你是返回json或者什么的话这里应该是
return null;
你都不知道···········
用json对象封装你的数据对象
楼主,你的 response 实例化了吗?,如果没有那响应能到哪里去呢?你前台肯定没反应啊!
你应该在这里给它赋值:
public void setServletResponse(HttpServletResponse arg0) {
this.response = arg0;
}
改成return null;
SUCCESS 不就跳转了么,AJAX 是不刷新的