★Struts2中的Ajax实现

项目作完了,现在没什么事情做,继续研究一下Struts2框架.今天作的是Struts2种的Ajax的实现。这里是用自带的DOJO实现的。先看配置文件,配置了Struts2和Freemarker

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
	<display-name>Ajax</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<servlet>
		<servlet-name>freemarker</servlet-name>
		<servlet-class>
			org.apache.struts2.views.freemarker.FreemarkerServlet
		</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>freemarker</servlet-name>
		<url-pattern>*.ftl</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>
	<package name="Struts2Ajax" extends="struts-default">
		<action name="ShowArticle" class="com.zzh.action.ShowArticle">
			<result type="freemarker">/result.ftl</result>
		</action>
	</package>
</struts>

 index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Ajax</title>
        <s:head theme="ajax" />
        <script type="text/javascript">                    

            dojo.event.topic.subscribe('getArticle', this, function(data, type, e){
                if(type == 'load') {
                    showArticle(data);
                } else if(type == 'error') {
                    alert('Can not connect to the server');
                }
            });
        
        function showArticle(data) {
         document.getElementById("article").innerHTML=data;
        }
        </script>
    </head>
    <body>

        <s:a theme="ajax" href="ShowArticle.action?id=1" notifyTopics="getArticle" >新聞1</s:a>
        <s:a theme="ajax" href="ShowArticle.action?id=2" notifyTopics="getArticle" >新聞2</s:a>
        <s:a theme="ajax" href="ShowArticle.action?id=3" notifyTopics="getArticle" >新聞3</s:a>
        <s:a theme="ajax" href="ShowArticle.action?id=4" notifyTopics="getArticle" >新聞4</s:a>
        <div id="article"></div>
        
    </body>
</html>
 

ShowArticle.java

package com.zzh.action;

public class ShowArticle {
	private  Article article;
    private String id;
	public Article getArticle() {
		return article;
	}

	public void setArticle(Article article) {
		this.article = article;
	}
	public String execute()
	{
		article = new Article();
		article.setTitle("新聞標題"+id);
		article.setContent("新聞内容"+id);
		return "success";
	}


	public void setId(String id) {
		this.id = id;
	}

}

 Article.java

package com.zzh.action;

public class Article {
	private String title;
	private String content;
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}

}

 作成画面一覧

 

你可能感兴趣的:(Ajax,freemarker,struts,servlet,dojo)