试图遵循这个Java教程.
大约63页,您被告知如何创建表单("New.jsp")来提交新事件.
当我尝试访问该页面时,出现以下错误:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Filter execution threw an exception
com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause
java.lang.NoClassDefFoundError: Could not initialize class freemarker.template.Configuration
org.apache.struts2.views.freemarker.FreemarkerManager.createConfiguration(FreemarkerManager.java:294)
org.apache.struts2.views.freemarker.FreemarkerManager.init(FreemarkerManager.java:255)
org.apache.struts2.views.freemarker.FreemarkerManager.getConfiguration(FreemarkerManager.java:238)
org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:734)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:506)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
Apache Tomcat/6.0.29
Run Code Online (Sandbox Code Playgroud)
我在D:\ education\java.metadata.plugins\org.eclipse.wst.server.core\tmp1\logs\localhost_access_log.2010-09-26.txt找到了这个日志
127.0.0.1 - …Run Code Online (Sandbox Code Playgroud) 有没有办法在Freemarker中轻松格式化Joda DateTime对象?例如,使用Java日期,我们可以使用?字符串和其他指令.
我知道我可以调用Date并获得Java Date,但我希望有更好的方法.
我见过Sitemesh与Spring和Freemarker(FTL)一起使用.所以我想知道什么是Sitemesh及其与FTL的使用,例如.
我编写了一个宏来打印带有传递值的HTML输出.让我们说:
<@myMacro 'foo'>
Run Code Online (Sandbox Code Playgroud)
现在我想从.properties文件传递给这个宏一条消息.
<@spring.message code="key"/> // contains 'foo'
Run Code Online (Sandbox Code Playgroud)
我需要的是传递key带有附加字符串的消息值,如:
<@spring.message code="key"/>bar // foobar
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点传递foobar到myMacro?
春季版:2.5
我正在使用JQuery Full Calendar和Spring MVC.
你好,我已经像一个演示是.
目标:我需要当用户点击已经插入的事件时,会出现一个对话框,让他/她能够删除该事件或取消.
问题:现在,只要用户在任何一天点击,就会出现一个对话框,允许用户输入该事件的标题,然后用户点击"确定"保存该事件.
Freemarker:Freemarker:
<script type="text/javascript">
var resourceVacation;
function censor(censor) {
return (function() {
var i = 0;
return function(key, value) {
if (i !== 0 && typeof(censor) === 'object' && typeof(value) == 'object' && censor == value)
return '[Circular]';
++i; // so we know we aren't using the original object anymore
return value;
}
})(censor);
}
function doAjax() {
$.each(resourceVacation, function(index) {
var tmpDate = resourceVacation[index].start;
tmpDate.setHours(tmpDate.getHours() - tmpDate.getTimezoneOffset() / 60);
resourceVacation[index].start=tmpDate;
}); …Run Code Online (Sandbox Code Playgroud) 在处理JSon时,某些值为null Freemarker在?eval中给出错误.
与mapper.setSerializationInclusion(Inclusion.NON_NULL)我能避免这一点,但我错过了产生JSON此信息.
有一种方法可以用这个空值来实现评估吗?
<#assign test = "{\"foo\":\"bar\"}">
<#assign m = test?eval>
${m.foo} <#-- prints: bar -->
Run Code Online (Sandbox Code Playgroud)
评估失败
<#assign test = "{\"foo\":null}">
<#assign m = test?eval> <#-- fail in eval -->
${m.foo}
Run Code Online (Sandbox Code Playgroud) 我想在freemarker中创建一个现有模型的新模型,以便于使用.
我的模型是这样的:
[
{
"id": "1",
"type": "TYPE_1",
"code": "CODE_OF_TYPE_1"
},
{
"id": "2",
"type": "TYPE_1",
"code": "ANOTHER_CODE_OF_TYPE_1"
},
{
"id": "3",
"type": "TYPE_2",
"code": "CODE_OF_TYPE_2"
},
{
"id": "4",
"type": "TYPE_2",
"code": "ANOTHER_CODE_OF_TYPE_2"
}
]
Run Code Online (Sandbox Code Playgroud)
我想做到这样的事情:
{
"TYPE_1": {
"CODE_OF_TYPE_1": "1",
"ANOTHER_CODE_OF_TYPE_1": "2"
},
"TYPE_2": {
"CODE_OF_TYPE_2": "3",
"ANOTHER_CODE_OF_TYPE_2": "4"
}
}
Run Code Online (Sandbox Code Playgroud)
您可能知道,在freemarker中为哈希分配密钥有点奇怪..
我做的是这样的:
<#assign preferencesByCode = {} />
<#list preferences as preference>
<assign preferencesByCode = preferencesByCode + {preference.type : { preference.code: preference.id } } />
</#list>
Run Code Online (Sandbox Code Playgroud)
但这样做,它只保留最后一个id,所以我只有一种类型..
那么我试过这个: …
我试图根据数据的存在或缺乏来更改数据表的布局.我喜欢写但不起作用的是:
<#if record.enduseraccount?has_content OR record.installedataccount?has_content>
Table 1
<#else>
table 2
</#if>
Run Code Online (Sandbox Code Playgroud)
我不需要两个陈述都是真的,只需要一个或另一个.我真的不想通过为每个变量添加一个新表来为模板添加大量长度.
例如,当您在宏中有可变参数时
<#macro m a b c...>
Run Code Online (Sandbox Code Playgroud)
调用宏时,你必须传递至少3个参数或2个参数吗?c这里的参数是否必须至少有1个值?还有什么办法可以默认将参数指定为null吗?
例如:
<#assign foo="foo"/>
<#local bar="bar"/>
Run Code Online (Sandbox Code Playgroud)
何时应该使用一个而不是另一个
freemarker ×10
spring ×3
datetime ×1
fullcalendar ×1
hash ×1
jackson ×1
java ×1
javascript ×1
jodatime ×1
jquery ×1
json ×1
macros ×1
sitemesh ×1
spring-mvc ×1
struts2 ×1
tomcat ×1