1、tabbedPanelTag.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Enter first and last name</title>
<s:head theme="ajax" debug="false" />
</head>
<body>
<s:tabbedPanel id="test">
<s:div id="one" label="第一个 TabItem" theme="ajax" labelposition="top"
cssStyle="padding: 10px; ">
第一个 TabItem <br />
第一个 TabItem <br />
</s:div>
<s:div id="two" label="第二个 TabItem" theme="ajax"
cssStyle="padding: 10px; ">
第二个 TabItem <br />
第二个 TabItem <br />
</s:div>
<s:url action="divNews" id="divNewsUrl"></s:url> 知识点:<s:url>标签中action属性表明请divNews.action而这个action返回的是一个字符
<s:div id="three" label="新闻列表" theme="ajax" href="%{#divNewsUrl}"> 串值:/divNews.jsp;href="%{#divNewsUrl}"利用上面jsp页面内容填充div
</s:div>
</s:tabbedPanel>
<br/>
<s:tabbedPanel id="test2" closeButton="tab">
<s:div id="one2" label="第一个 TabItem" theme="ajax" labelposition="top"
cssStyle="padding: 10px; ">
第一个 TabItem <br />
第一个 TabItem <br />
</s:div>
<s:div id="two2" label="第二个 TabItem" theme="ajax"
cssStyle="padding: 10px; ">
第二个 TabItem <br />
第二个 TabItem <br />
</s:div>
<s:div id="three2" label="新闻列表" theme="ajax" href="%{#divNewsUrl}">
</s:div>
</s:tabbedPanel>
</body>
</html>
2、DivNewsAction:
package com.belstar.action;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import com.opensymphony.xwork2.ActionSupport;
@Results(value = { @Result(name = "input", value = "/divNews.jsp") }) ---------------知识点:利用注解方式实现“零配置”(项目中省去了struts.xml文件的配置)
public class DivNewsAction extends ActionSupport {
private static final long serialVersionUID = 6560408661223488775L;
private static String[] ALL_NEWS = { "中国将举办2008年奥运会, 开幕式日期 2008年8月8日",
"继水立方后, 又一奥运建筑鸟巢体育馆日前竣工", "嫦娥探月卫星成功发射升空", "神舟六号号宇宙飞船胜利返航",
"中国A股股市超跌反弹", };
private List<String> news = new ArrayList<String>();
public String execute() {
System.out.println("come here!");
for (String n : ALL_NEWS) {
news.add(n);
}
return INPUT;
}
public List<String> getNews() {
return news;
}
public void setNews(List<String> news) {
this.news = news;
}
}
3、实现零配置得在web.xml中添加参数“actionPackages"如下web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.belstar.action</param-value> <!--指定action所在的包-->
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>tabbedPanelTag.jsp</welcome-file>
</welcome-file-list>
</web-app>
4、被标签页引入的页面divNews.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Enter first and last name</title>
<s:head theme="ajax" debug="false" />
<style type="text/css">
div,body,td {
font-size: 12px;
}
</style>
</head>
<body>
<%
Thread.sleep(1000);
%>
<div style="padding: 10px; width: 350px; background-color: #E5E5E5;">
<s:iterator value="news"> <!-- 遍历action中news属性-->
<s:property /> <br/>
</s:iterator>
</body>
</html>