Struts 2 + Dojo + Datetimepicker

时间:2011-05-24 16:56:04

标签: struts2 dojo datetimepicker

一个简单的问题。

如何一起使用“简单主题”()和“dojo datetimepicker”()?

我已经读过如果您只想使用简单主题,那么使用head.ftl中的代码手动导入所有必需的dojo文件...

事情是所有那些js都在struts dojo jar文件中,它包含在类路径中。我怎样才能将它们包含在jsp中?整条道路应该是什么?任何例子都会有所帮助。

1 个答案:

答案 0 :(得分:0)

  

<强> Performance Tuning

     

<强> 1。启用Freemarker模板缓存

     

在2.0.10之前的Struts版本中,   你必须复制/模板   来自Struts 2 jar的目录   你的WEB_APP根用于利用   Freemarker内置了chaching   机制以实现类似   结果

     

内置的Freemarker缓存   机制无法正确缓存   从中检索模板   类路径。将它们复制到   WEB_APP root允许Freemarker   正确缓存它们。 Freemarker看起来   在最后修改时间   模板,以确定是否需要   重新加载模板。资源   从类路径中检索到没有   最后修改时间,所以Freemarker会   每次请求都会重新加载它们。

     

<强> 2。覆盖主题时,将所有必要的模板复制到主题中   。目录

     

当a时有性能成本   在模板中找不到   当前目录。原因就在于此   是Struts 2必须检查一个   首先是当前主题中的模板   在回到父母之前   主题。在将来,这个惩罚   可以通过实施a来消除   Struts 2中缺少模板缓存。


示例

YourWebApp  
|-- WebContent  
    |-- templates
        |-- ajax
            |-- controlheader.ftl, datetimepicker.ftl, dojoRequire.js, head.ftl
        |-- simple
            |-- [All files]
        |-- xhtml
            |-- controlfooter.ftl, controlheader-core.ftl, controlheader.ftl, tooltip.ftl, validation.js

<struts>
    <constant name="struts.ui.templateDir" value="templates" />
    <constant name="struts.ui.theme" value="simple" />
</struts>

<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<head>
    <sx:head />
</head>
<body>
    <sx:datetimepicker name="date" />
</body>

Ajax标记的 Datetimepicker 很糟糕,您是否考虑过 jQuery UI Timepicker/Datetimepicker