现在的位置: 首页 > 综合 > 正文

《struts2权威指南》学习笔记之struts2 ajax动态表单

2013年11月07日 ⁄ 综合 ⁄ 共 4139字 ⁄ 字号 评论关闭

web.xml

 

<?xml version="1.0" encoding="GBK"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>

    
<servlet-name>dwr</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>
    
</servlet>

    
<servlet-mapping>
        
<servlet-name>dwr</servlet-name>
        
<url-pattern>/dwr/*</url-pattern>
    
</servlet-mapping>



    
    
<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    
</filter>


    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>

</web-app>

 struts.xml

 

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>

<struts>

    
<constant name="struts.custom.i18n.resources" value="messageResource"/>
    
<constant name="struts.i18n.encoding" value="GBK"/>

    
<package name="ajax" extends="struts-default">
        
<action name="AjaxTest" class="lee.AjaxTestAction">
            
<result>/AjaxResult.jsp</result>
        
</action>
        
<action name="Test3">
            
<result>/testjs.jsp</result>
        
</action>
    
</package>

</struts>

 

AjaxTest.action

 

package lee;

import com.opensymphony.xwork2.Action;

import java.io.Serializable;


public class AjaxTestAction implements Action, Serializable
{

    
private static int counter = 0;
    
private String data;

    
public long getServerTime()
    
{
        
return System.currentTimeMillis();
    }


    
public int getCount()
    
{
        
return ++counter;
    }


    
public String getData()
    
{
        
return "服务器提示:" + data;
    }


    
public void setData(String data)
    
{
        
this.data = data;
    }


    
public String execute() throws Exception 
    
{
        
        
return SUCCESS;
    }

}

 

AjaxResult.jsp

 

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
    request.setAttribute(
"decorator""none");
    response.setHeader(
"Cache-Control","no-cache"); //HTTP 1.1
    response.setHeader(
"Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader (
"Expires"0); //prevents caching at the proxy server
%>

服务器计数器: 
<s:property value="count"/><br>
当前时间是:
<s:property value="serverTime"/><br>
服务器返回的提示是:
<s:property value="data"/>

 

remoteform.jsp

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    
<title>远程表单</title>
    
<s:head theme="ajax"/>
</head>
<body>
<div id='show' style="background-color:#bbbbbb;width:360px;height:80px">原始静态文本</div>
使用表单请求的返回值来填充另一个Div。
<br/>
<s:form id='theForm1'
        
cssStyle="border: 1px solid black;"
        action
='AjaxTest'
        
method='post'
        
theme="ajax">
    
<s:textfield name='data' label="请输入您喜欢的图书"/>
    
<s:submit value="修改上面的静态文本" targets="show"/>
</s:form>
使用表单请求的返回值来填充本Form
<br/>
<s:form id='theForm2'
        
cssStyle="border: 1px solid black;"
        action
='AjaxTest'
        
method='post'
        
theme="ajax">
    
<s:textfield name='data' label="请输入您喜欢的图书"/>
    
<s:submit value="修改Form本身" targets="theForm2"/>
</s:form>
直接运行远程JavaScript(通过指定executeScripts="true")
<br/>
<s:form id='theForm3'
        
cssStyle="border: 1px solid black;"
        action
='Test3'
        
method='post'
        
theme="ajax">
    
<s:textfield name='data' label="请输入您喜欢的图书"/>
    
<s:submit value="执行远程JS" executeScripts="true" targets="show"/>
</s:form>
</body>
</html>

 

testjs.jsp

 

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%
    request.setAttribute(
"decorator""none");
    response.setHeader(
"Cache-Control","no-cache"); //HTTP 1.1
    response.setHeader(
"Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader (
"Expires"0); //prevents caching at the proxy server
%>

<script language="JavaScript" type="text/javascript">
    alert(
'Spring2.0宝典');
</script>

抱歉!评论已关闭.