首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种简单的方法来混合spring-mobile和apache-tiles来帮助使用公共元素?

有没有一种简单的方法来混合spring-mobile和apache-tiles来帮助使用公共元素?
EN

Stack Overflow用户
提问于 2013-02-19 15:54:01
回答 1查看 1.3K关注 0票数 1

我刚刚用spring-mobile和apache-tiles建立了一个新的应用程序,我打算使用这个应用程序描述符来帮助我在目标平台之间重用视图组件。我想知道是否有人已经这样做了,以及构建应用程序的最佳方法。在过去使用tiles的时候,瓷砖描述符加起来很快,在混合中添加了移动和平板电脑,我可以轻松地拥有两倍的数量。

到目前为止,我有一个主瓷砖定义WEB-INF/layout/tiles.xml,在这方面有三个布局:

代码语言:javascript
复制
<tiles-definitions>
    <definition name="layoutStandard" template="/WEB-INF/layout/standard.jsp"/>
    <definition name="layoutMobile" template="/WEB-INF/layout/mobile.jsp"/>
    <definition name="layoutTablet" template="/WEB-INF/layout/tablet.jsp"/>
</tiles-definitions>

然后查看定义。

代码语言:javascript
复制
<tiles-definitions>
    <definition name="home" extends="layoutStandard">
        <put-attribute name="body" value="/WEB-INF/views/home.jsp" />
    </definition>
    <definition name="home.mob" extends="layoutMobile">
        <put-attribute name="body" value="/WEB-INF/views/home.mob.jsp" />
    </definition>
    <definition name="home.tab" extends="layoutTablet">
        <put-attribute name="body" value="/WEB-INF/views/home.tab.jsp" />
    </definition>
</tiles-definitions>

我已经针对mobileSuffixtabletSuffix配置了LiteDeviceDelegatingViewResolver,所以我的控制器中没有太多的麻烦,它也有enableFallback集,如果我不提供移动视图定义,enableFallback集就能很好地工作。

有什么方法可以对瓷砖的配置做类似的事情吗?也就是说,如果视图名称以.mob结尾,那么使用layoutMobile而不必多次定义它?

EN

回答 1

Stack Overflow用户

发布于 2013-02-28 19:32:23

我只是做了以下几点:

添加到applicationContext.xml

代码语言:javascript
复制
<mvc:interceptors>
    <bean class="org.springframework.mobile.device.mvc.DeviceResolvingHandlerInterceptor" />
</mvc:interceptors>

添加到tilesDefinition.xml

n.b.需要tiles.el.jar

代码语言:javascript
复制
<definition name="store" templateExpression="/jsp/home${layout}.jsp">
...
<definition name="page" extends="store">
...

添加到控制器

对于所有获取所有页面类型的默认数据的控制器,我使用一个单一的方法。

代码语言:javascript
复制
if (!device.isNormal() || sitePreference.isMobile()) {
  if (!sitePreference.isNormal()) {
    layout = "-mobile";     
  }
}

我只使用手机,但你应该可以调整这个来工作手机或平板电脑。

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14961648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档