zoukankan      html  css  js  c++  java
  • [Struts]使用tiles管理界面遇到困难

    上个周末都在研究怎么用tiles管理示范中心项目的界面,没想到遇到了不少麻烦,到现在也没解决。首先,示范中心项目有很多个模块,我们是用struts的模块功能分开的。本来想的是在缺省模块里定义几个公用的界面定义(definition),然后再各模块里都继承这个定义,并修改必要的tile就可以了。没想到不管怎么设置,模块里的定义都继承不到缺省的定义。缺省模块里:

    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
      
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
    </plug-in>

    教师模块里:

    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
      
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-defs-teacher.xml" />
    </plug-in>

    tiles-defs.xml里:

    <definition name="classicLayout" path="/layout/classic.jsp">
        
    <put name="header" value="/header.jsp" />
        
    <put name="menu" value="/teacher/list.do"/>
        
    <put name="main" value=""/>
        
    <put name="footer" value="/footer.jsp" /> 
    </definition>

    tiles-defs-teacher.xml里:

    <definition name="listLayout" extends="classicLayout">
        
    <put name="main" value="/teacher/list.jsp"/>
    </definition>

    然后在教师模块里forward到listLayout,提示path没有以"/"开头,就是没有找到listLayout这个定义了。我试了很多写法,包括设置moduleAware的属性,都没有成功。

    后来想就在每个模块里都写classicLayout的定义吧,都指向同一个.jsp定义文件就可以了。又遇到新问题,我想在teacher模块里显示menu模块里的内容,会提示找不到所需资源,因为我是在teacher模块里,menu模块的资源是无法访的,除非在menu模块的配置文件里指定key,再在.jsp文件里强制指定bundle的名称,我觉得这个方法太不雅了,同时要做不少修改。

    <definition name="classicLayout" path="/layout/classic.jsp">
        
    <put name="header" value="/header.jsp" />
        
    <put name="menu" value="/menu/list.jsp"/>
        
    <put name="main" value="/teacher/list.jsp"/>
        
    <put name="footer" value="/footer.jsp" /> 
    </definition>

    还有,<put>里的value只能是.jsp吗,用.do行不行,我试的结果是不行,虽然没报任何错误,但页面生成到那之前就截止了。郁闷!

  • 相关阅读:
    总结几个面试题
    产生下一个排列数的算法
    所谓码农
    简记微软实习生面试
    二维数组作为函数的参数传递
    详细解说 STL 排序(Sort)
    copy()之绝版应用
    STL标准模板库(简介)
    访问控制和继承方式
    常用软件开发模型比较分析
  • 原文地址:https://www.cnblogs.com/bjzhanghao/p/36000.html
Copyright © 2011-2022 走看看