求救!关于在struts中的tiles问题

satyrping 2004-03-21 01:03:03
在struts中我使用tiles
问题一 :
有怎么一句<tiles:importAttrbute/>,就出现
javax.servlet.ServletException: Error - tag importAttribute : no tiles context found.
为什么,我多次检查过我的配置文件了,没有问题啊。

问题二 :
还有很多人都遇到过的一个问题,如:
index.jsp :
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<logic:redirect forward="index"/>

tiles-defs.xml :
<tiles-definitions>
<definition name="basiclayout" path="/layout/basiclayout.jsp">
<put name="title" value="hello"/>
<put name="header" value="/segment/header.jsp"/>
<put name="footer" value="/segment/footer.jsp"/>
<put name="body" value="bbslayout"/>
</definition>
<tiles-definitions>

struts-config.xml :
<struts-config>
<global-forwards>
<forward name="index" path="basiclayout" />
</global-forwards>
</struts-config>
执行index.jsp时出现 :404错误

但我参照tiles-documentation.war这个例子,他可以,我怎么不行,
为什么,有什么潜在原因回出这样的错误。

问题三 :
请问网上什么地方有关于struts,tiles比较有深度的文章

先谢谢各位了。
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
satyrping 2004-03-21
  • 打赏
  • 举报
回复
还是一样啊,这些我都设置了,就是找不出问题
朋友,请帮我再想想啊,急!
NewTypeQ 2004-03-21
  • 打赏
  • 举报
回复
在tiles-config.xml可以这样使用baselayout.jsp

<!-- ======== Base layout definition ======== -->
<definition name="baseLayout" path="/layouts/baselayout.jsp">
<put name="titleKey"/>
<!-- Default Javascript File List -->
<putList name="scripts">
<add value="/scripts/global.js"/>
</putList>
<!-- Default Stylesheet File List-->
<putList name="styles">
<add value="/styles/default.css"/>
<add value="/styles/messages.css"/>
</putList>
</definition>

<definition name=".a" extends="baseLayout">
<put name="titleKey" value="a.homepage.title" />
<put name="header" value="/a/header.jsp"/>
</definition>

<definition name=".a.b" extends=".a">
<put name="sidebar" value="/a/b/sidebar.jsp"/>
<put name="content" value="/a/b/homepage.jsp"/>
</definition>

<definition name=".a.b.c" extends=".a.b">
<put name="content" value="/a/b/c.jsp"/>
</definition>


NewTypeQ 2004-03-21
  • 打赏
  • 举报
回复
问题1
确保struts-config.xml包含tiles文件声明
如:
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property value="/WEB-INF/tiles-config.xml" property="definitions-config" />
<set-property value="true" property="moduleAware" />
<set-property value="true" property="definitions-parser-validate" />
</plug-in>
确保你的layout.jsp包含<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
如baselayout.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ 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" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/display.tld" prefix="display" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>
<head>
<%-- Push tiles attributes in page context --%>
<tiles:importAttribute />
<title>
<bean:message name="titleKey"/>
</title>

<%-- Get Javascript List --%>
<tiles:useAttribute id="scriptList" name="scripts"
classname="java.util.List" ignore="true"/>

<logic:iterate id="js" name="scriptList" >
<script type="text/javascript"
src="<bean:write name='js' />"></script>
</logic:iterate>

<%-- Get List of Stylesheets --%>
<tiles:useAttribute id="styleList" name="styles"
classname="java.util.List" ignore="true"/>
<logic:iterate id="css" name="styleList">
<link rel="stylesheet" type="text/css" media="all"
href="<bean:write name='css' />" />
</logic:iterate>
</head>

<body>
<tiles:insert attribute="header"/>
<table width="100%" height="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<tiles:insert attribute="sidebar"/>
<tiles:insert attribute="content"/>
</tr>
</table>

</body>
</html:html>
vongood 2004-03-21
  • 打赏
  • 举报
回复
gz.
ding

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧