DWR与Struts整合收藏

<noscript></noscript> 1.下載DWR Version 2
https://dwr.dev.java.net/files/documents/2427/47504/dwr.jar

2.安裝DWR,把dwr.jar放到WEB-INF/lib下

web.xml中加入DWRServlet & ActionServlet
其中<load-on-startup>的部分要特別注意,ActionServlet要先初始化,所以數字要比較小.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>10</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>



dwr.xml中加入struts的設定,其中formBean的參數的value值,會對應到struts-config.xml中<form-beans>的設定
1
2
3
4
5
6
7
8
  <dwr>
  <allow>
    <create creator="struts" javascript="testFrm">
      <param name="formBean" value="testActionForm"/>
    </create>
  </allow>
  </dwr>
  


struts-config.xml
1
2
3
4
5
6
7
8
9
10
11
  <struts-config>
  <form-beans>
    <form-bean name="testActionForm" type="test.struts.testActionForm" />
  </form-beans>
  <action-mappings>
    <action name="testActionForm" path="/testAction" scope="session" type="test.struts.testAction" validate="false">
      <forward name="display" path="/display.jsp" />
    </action>
  </action-mappings>
  <message-resources parameter="ApplicationResources" />
</struts-config>


testActionForm.java,getDate()會透過dwr,取得現在最新的日期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package test.struts;
 
import org.apache.struts.action.*;
import java.util.*;
 
public class testActionForm extends ActionForm {
 
    private String strDate;
 
    public void setStrDate(String strDate) {
        this.strDate = strDate;
    }
 
    public String getStrDate() {
        return strDate;
    }
 
    //dwr
    public String getDate() {
        Date date = new Date();
        return date.toString();
    }
 
}


testAction.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package test.struts;
 
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import org.apache.struts.action.*;
 
public class testAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) {
 
        testActionForm actionForm = (testActionForm) form;
        System.out.println(actionForm.getStrDate());
        return mapping.findForward("display");
    }
}

date.jsp,在form的部分,請用struts 的 tag library,我把<html:text property="strDate" size="30" >改成<input type="text" name="strDate">後,無法正常的接受到值.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%@ page contentType="text/html; charset=Big5" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title>title</title>
  <script type='text/javascript' src='dwr/interface/testFrm.js'></script>
  <script type='text/javascript' src='dwr/engine.js'></script>
  <script type='text/javascript' src='dwr/util.js'></script>
</head>
<SCRIPT LANGUAGE="JavaScript" type="">
 
function refreshDate() {
    testFrm.getDate(populateDate);
}
 
function populateDate(data){
   DWRUtil.setValue('strDate', data);
}
 
</script>
 
<body>
 
<html:form action="testAction.do">
date:
<html:text property="strDate" size="30" >
</html:text>
 
<input type="button" οnclick="refreshDate();" value="更新日期"/>
<br/>
 
  <html:submit>送出
  </html:submit>
</html:form>
</body>
</html>


display.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page contentType="text/html; charset=Big5" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@page import="test.struts.*"%>
<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<h1>您送出的日期:<br>
<bean:write name="testActionForm" property="strDate"/>
</h1>
</body>
</html>
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值