tiles2的布局管理(二)struts2+tiles2

tiles2的布局管理(二)struts2+tiles2

official web site
http://tiles.apache.org/

the document is here
http://tiles.apache.org/framework/index.html

Since spring is not used in our project, so we manage tiles like this.

configuration file web.xml:
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<listener>
<listener-class>
org.apache.struts2.tiles.StrutsTilesListener
</listener-class>
</listener>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

since we do not use spring here, so the properties file only leaving the struts config, struts.properties:
struts.i18n.encoding=utf-8
#dev mode flag
struts.devMode=true
struts.action.extension=do

I never changed the tiles.xml file:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://struts.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="base.definition" template="/layout/layout.jsp">
<put-attribute name="title" value="当前客户起始页面"/>
<put-attribute name="banner" value="/content/top.jsp"/>
<put-attribute name="menu" value="/content/menu.jsp"/>
<put-attribute name="sidebar" value="/content/sidebar.jsp"/>
<put-attribute name="hintbar" value="/content/error.jsp"/>
<put-attribute name="body" value="/screen/body.jsp"/>
</definition>
<definition name="index.definition" extends="base.definition">
<put-attribute name="body" value="/screen/index.jsp"/>
</definition>
</tiles-definitions>

and I change the struts.xml to use java bean instead of spring bean:
<?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="testp" namespace="/testn" extends="tiles-default">
<action name="hello" method="hello"
class="com.sillycat.easytiles.action.HelloAction">
<result name="hello" type="tiles">base.definition</result>
</action>
<action name="ads" method="ads"
class="com.sillycat.easytiles.action.HelloAction">
<result name="hello" type="tiles">index.definition</result>
</action>
</package>
</struts>

and the action is extends from ActionSupport, not spring controller, HelloAction.java:
package com.sillycat.easytiles.action;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport{
private static final long serialVersionUID = -9057233877588668059L;
private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
private String ctx = null;
public String getCtx() {
if (ctx == null) {
HttpServletRequest request = ServletActionContext.getRequest();
ctx = request.getScheme() + "://" + request.getServerName() + ":"
+ request.getServerPort();
ctx += request.getContextPath();
}
return ctx;
}
@SuppressWarnings("unchecked")
public String hello() {
request = (Map) ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
request.put("request1", "request-test2");
session.put("session1", "session-test2");
application.put("application1", "application-test2");
return "hello";
}
@SuppressWarnings("unchecked")
public String ads() {
request = (Map) ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
request.put("request1", "request-test1");
session.put("session1", "session-test1");
application.put("application1", "application-test1");
ctx = "http://sillycat.iteye.com";
return "hello";
}
}

nothing special, we still use this url to visit our pages.
<a href="testn/testp/hello.do">hello</a><br />
<a href="testn/testp/ads.do">ads</a><br />

everything runs well.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值