【问题标题】:velocity with spring - I want to have static template with dynami cocntent速度与弹簧 - 我想要具有动态内容的静态模板
【发布时间】:2012-03-17 23:06:47
【问题描述】:

我想知道 Velocity 能否实现我想要的 :)

例如我有

<html>
   <meta> 
      <title>My title</title>
   </meta>
   <body>
   <div id="content">
   <!-- here is my dynamic content -->
   </div>       
   <div id="right">static content</div> 
  </body></html>

现在。我在基于 Spring 的应用程序中有 4 个操作

创建、更新、登录、主页

每个动作都有自己的模板。因为create是大表单,对于更新小表单,对于login,login form,对于homelates news。

彼此之间有很大的不同。现在我想动态交换我的内容 我可以用动态部分创建这样的模板容器(我的意思是标题部分和右 div)吗?

我不想获取对变量的操作响应并将其传递给模板。我想要一个简单的模板,例如 create.jsp 或 create.vm 或 create.html,我希望我的应用程序自动获取操作模板并将其呈现在我的静态模板容器中。

我希望清楚

【问题讨论】:

标签: spring spring-mvc velocity


【解决方案1】:

为什么不改用 Tiles?它专为这种情况而设计。

【讨论】:

  • (+1) 这就是瓷砖的用途
  • 不靠谱。我不t like tiles because every action need to be described in xml. I mean if I have 20 actions with 20 diffrent templates I need to go to my tiles.xml and write that update extends defaultTemplate, and I need to put-attribute for id="content". It isnt 有效。还是我错了?
  • Tiles 可以扩展其他的 tile,而不仅仅是 defaultTemplate,所以你可以建立东西。老实说,我认为使用 Tiles(或者如果您使用 JSF,甚至是 Sitemesh,则使用 Facelets)而不是 Velocity 会更简单,但这取决于您。
  • @TrueDub 我知道我可以扩展。但我需要为每个视图手动完成。它非常无效。还是我错了?
  • 看看 Sitemesh。它需要较少的配置,因此您可以设置它并忘记您是否有 2 或 20 个操作。如果模板相同,则无需为新操作添加新配置。
【解决方案2】:

我在几个项目中使用了带有 JSP 的 Tiles 2,我喜欢它。但是,对于 Velocity,我更喜欢将宏用于简单的模板系统。

ma​​in.vm:

#macro(main)
<html>
    <meta>
        <title>My title</title>
    </meta>
    <body>
        <div id="content">
            $bodyContent
        </div>
    </body>
</html>
#end

hello.vm:

#@main
Hello, World!
#end

弹簧配置:

<bean id="velocityConfigurer" 
    ...
    <property name="velocimacro.library" value="main.vm" />
</bean>

也许这不是那么漂亮,但它的优点是每个视图都可以决定应用哪种布局,更像是 JSF。

【讨论】:

  • 可以给我看一个我的问题的例子,但在瓷砖中配置?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 2012-06-14
  • 2018-09-18
  • 1970-01-01
相关资源
最近更新 更多