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

 我用的是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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值