我用的是struts2,因为毕业设计要做个在线教师备忘录,所以要用到万年历,万年历的生成要用到JavaScript,所以要action与js传数据。研究了一个下午,参考了Liang Ran 的文章之后终于解决了这个问题。Liang Ran 原文链接http://liangaran.blog.163.com/blog/static/2245010020081025102769/
源码是
struts.xml
-
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <package name="struts2" extends="struts-default">
- <action name="JS" class="com.test.JSAction">
- <result type="xslt">
- <param name="exposedValue">st</param>
- /index.jsp
- </result>
- <result name="input">/errer.jsp</result>
- </action>
- </package>
- </struts>
- import com.opensymphony.xwork2.ActionSupport;
- public class JSAction extends ActionSupport {
- private String date;
- private String st;
- @Override
- public String execute() throws Exception {
- st="test JSAction********";
- System.out.println("date="+date);
- System.out.println("*********JSAction***************************");
- return SUCCESS;
- }
- public String getSt() {
- return st;
- }
- public void setSt(String st) {
- this.st = st;
- }
- public String getDate() {
- return date;
- }
- public void setDate(String date) {
- this.date = date;
- }
- }
js/calendar.js
- var xmlHttp;
- var id="c";
- var date="2008-12-31";
- function createXMLHttp(){
- alert("createXMLHttp()");
- if(window.XMLHttpRequest){
- xmlHttp = new XMLHttpRequest();
- }else{
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
- }
- }
- function main(){
- alert("mian()");
- createXMLHttp();
- xmlHttp.onreadystatechange = CallbackFunction;
- xmlHttp.open("GET","JS.action?date="+date,true);
- xmlHttp.send(null);
- }
- function CallbackFunction(){
- if(xmlHttp.readyState == 4){
- alert("CallbackFunction()");
- alert("xmlHttp.readyState ="+xmlHttp.readyState );
- getDIV(id).innerHTML=xmlHttp.responseText;
- }
- }
- function getDIV(){
- alert("getDIV("+id+")");
- return document.getElementById(id);
- }
index.jsp
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>My JSP 'index.jsp' starting page</title>
- <script type="text/javascript" src="js/calendar.js"></script>
- </head>
- <body>***1******
- <div id="c">
- ******2**********
- </div>
- ******3*******<br>
- <input type="button" value="button" onclick="main()">
- </body>
- </html>