页面的ajax异步访问struts2的有返回值的页面,将返回值返回访问的页面
ajax.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'ajax.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="./script/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#infos").change(function(){
//alert($("#infos").val());
$.ajax({
type:'POST',
url:'system/testajax.do',
dataType:'html',
data:{info:$("#infos").val()},
success:function(data){
// alert("data="+data);
$("#form1").html(data);//返回值替换页面的表格达到异步刷新的效果
}
});
});
});
</script>
</head>
<body>
This is my JSP page. <br>
<select id="infos">
<option></option>
<option>send</option>
<option>nosend</option>
</select>
<form id="form1">
<table border="1" width="800" height="200">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
</table>
</form>
<form id="form2" action="system/testajax.do" method="POST">
<input name="names">
<input name="names">
<input name="names">
<input type="submit" value="submit">
</form>
</body>
</html>
TestAjax.java
public class TestAjax extends BaseAction implements ModelDriven<TestForm>{
private String info;
private TestForm testForm;
@Override
public String execute() throws Exception {
// System.out.println("info="+info);
List<String> list = new ArrayList<String>();
list.add("first");
list.add("second");
list.add("three");
request.setAttribute("infolist", list);
//for(String str:testForm.getNames())
// System.out.println(str);
return SUCCESS;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public TestForm getModel() {
if(testForm==null){
testForm = new TestForm();
}
return testForm;
}
}
struts.xml
<action name="testajax" class="cn.itcast.elec.web.action.TestAjax">
<result>
/return.jsp
</result>
</action>
return.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<table border="1" width="800" height="200">
<s:iterator value="#request.infolist" var="info">
<tr>
<td>内容:<s:property/></td>
</tr>
</s:iterator>
</table>