发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

Struts2中 如何应用草根ajax?

         
2009-02-24 20:23
赞助商链接

今天在用struts2 与Ajax结合的时候不能把数据取回到页面来了。。请大家帮帮忙:

html代码:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>registor form</title>
<script language="javascript">
var request;
function checkUserName(){
var username = document.getElementById('userName').value;
var url = "checkUserName.action?username="+username;
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
   }else if (window.ActiveXObject) {
  request = new ActiveXObject("Microsoft.XMLHTTP");
   }
 if(request){
  request.open("GET",url, true);
  request.onreadystatechange = complete;
  request.send(null);
   }
}
function complete(){
  if (request.readyState == 4) {
  if (request.status == 200) {
alert("test1");
alert(resquest.responseText);
// document.getElementById().style.display = "true";
document.getElementById("message").innerHTML = resquest.responseText;


  }
  }
}
</script>
</head>
<body>
<form action="registor.action" method="get">
<center>
<h1>
Registor Here.
</h1>
name:<input type="text" id="userName" name="userName" value="sun" />
<input type="button" onclick="return checkUserName()" value="check it useable"/>
<br>
pswd:<input type="text" name="password" value="" />
<br><input type="submit" value="submit" />
</center>
</form>
<center>
<div id="result" style="display: block">
<input type="text" id="message" value="" />
</div>
</center>
</body>
</html>

后台struts的代码:

主要是execute()方法的代码:
public String execute() {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
UsersService userService = (UsersService) ctx.getBean("UsersService");
result = userService.checkUserName(username);
HttpServletResponse response = (HttpServletResponse) ActionContext
.getContext().get(
org.apache.struts2.StrutsStatics.HTTP_RESPONSE);

PrintWriter pw;
try {
pw = response.getWriter();
pw.write("test");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//获取out输出对象
return null;
}

其他配置文件都没有 action也有反映 但是在页面上不知道怎么把数据拿回来显示。

[该贴被admin于2009-02-25 08:29修改过]

2009-02-24 22:21

没配置的话,返回null时默认是渲染当前页吧?
您可以尝试构造自己的result类型,但我推荐您使用google的一个开源工具,我们曾经用过,方便实用。
地址:http://code.google.com/p/jsonplugin/

2009-02-24 23:52

嗯 了解过这个json插件。。。result是一个boolean型的数据类型。。构造自己的result类型是什么意思?

2009-02-25 01:17

我的意思是struts.xml里的那个result类型,默认是dispatcher吧,用那个插件后就得声明type是json,package也要继承json-default。文档里有更详尽的说明,但我也没用过那么多。
<result name="input" type="json">/show.jsp</result>

struts2      ajax     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com