struts2与js传参数,也是利用Ajax实现

来源:互联网 发布:ftp文件上传类 php 编辑:程序博客网 时间:2024/06/12 22:35

 我用的是struts2,因为毕业设计要做个在线教师备忘录,所以要用到万年历,万年历的生成要用到JavaScript,所以要action与js传数据。研究了一个下午,参考了Liang Ran 的文章之后终于解决了这个问题。Liang Ran 原文链接http://liangaran.blog.163.com/blog/static/2245010020081025102769/

 

源码是

struts.xml

    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE struts PUBLIC
    3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    4.     "http://struts.apache.org/dtds/struts-2.0.dtd">
    5. <struts>
    6.     <package name="struts2" extends="struts-default">
    7.         <action name="JS" class="com.test.JSAction">
    8.             <result type="xslt">
    9.                 <param name="exposedValue">st</param>
    10.                 /index.jsp
    11.             </result>
    12.             <result name="input">/errer.jsp</result>
    13.         </action>
    14.     </package>
    15.     
    16. </struts>
    package
     com.test;
  1. import com.opensymphony.xwork2.ActionSupport;
  2. public class JSAction extends ActionSupport {
  3.     private String date;
  4.     private String st;
  5.     
  6.     @Override
  7.     public String execute() throws Exception {
  8.         st="test JSAction********";
  9.         System.out.println("date="+date);
  10.         System.out.println("*********JSAction***************************");
  11.         return SUCCESS;
  12.     }
  13.     public String getSt() {
  14.         return st;
  15.     }
  16.     public void setSt(String st) {
  17.         this.st = st;
  18.     }
  19.     public String getDate() {
  20.         return date;
  21.     }
  22.     public void setDate(String date) {
  23.         this.date = date;
  24.     }
  25. }

js/calendar.js

  1. var xmlHttp;
  2. var id="c";
  3. var date="2008-12-31";
  4. function createXMLHttp(){
  5.     alert("createXMLHttp()");
  6.     if(window.XMLHttpRequest){
  7.         xmlHttp = new XMLHttpRequest();
  8.     }else{
  9.         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  10.     }
  11. }
  12. function main(){
  13.     alert("mian()");
  14.     createXMLHttp();
  15.     xmlHttp.onreadystatechange = CallbackFunction;
  16.     xmlHttp.open("GET","JS.action?date="+date,true);
  17.     xmlHttp.send(null);
  18.     
  19. }
  20. function CallbackFunction(){
  21.     if(xmlHttp.readyState == 4){
  22.             alert("CallbackFunction()");
  23.     alert("xmlHttp.readyState ="+xmlHttp.readyState );
  24.         getDIV(id).innerHTML=xmlHttp.responseText;
  25.     }
  26. }
  27. function getDIV(){
  28.     alert("getDIV("+id+")");
  29.     return document.getElementById(id);
  30. }

index.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4.   <head>
  5.    
  6.     <title>My JSP 'index.jsp' starting page</title>
  7. <script type="text/javascript" src="js/calendar.js"></script>
  8.   </head>
  9.   
  10.   <body>***1******
  11. <div id="c">
  12. ******2**********
  13. </div>
  14. ******3*******<br>
  15. <input type="button" value="button" onclick="main()">
  16.   </body>
  17. </html>
原创粉丝点击