一下是jsp页面输出的信息:
请高手指教啊。freeer 不太懂。
FreeMarker template error!Expression org.userObject is undefined on line 102, column 29 in base/views/org/orgInfoMain.ftl.
The problematic instruction:
----------
==> ${org.userObject.users?size} escaped ${org.userObject.users?size?if_exists} [on line 102, column 27 in base/views/org/orgInfoMain.ftl]
----------Java backtrace for programmers:
----------
freeer.core.InvalidReferenceException: Expression org.userObject is undefined on line 102, column 29 in base/views/org/orgInfoMain.ftl.
at freeer.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freeer.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
at freeer.core.Dot._getAsTemplateModel(Dot.java:78)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.BuiltIn$sizeBI._getAsTemplateModel(BuiltIn.java:615)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.BuiltIn$if_existsBI._getAsTemplateModel(BuiltIn.java:674)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.Expression.getStringValue(Expression.java:93)
at freeer.core.DollarVariable.accept(DollarVariable.java:76)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.IfBlock.accept(IfBlock.java:82)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)
at freeer.core.Environment.visit(Environment.java:351)
at freeer.core.IteratorBlock.accept(IteratorBlock.java:95)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.EscapeBlock.accept(EscapeBlock.java:84)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.Environment.process(Environment.java:176)
at freeer.template.Template.process(Template.java:231)
at com.opensymphony.webwork.views.freeer.FreeerResult.doExecute(FreeerResult.java:77)
at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:109)
at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:258)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.TimerInterceptor.intercept(TimerInterceptor.java:78)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.chinaspis.base.filters.SetProductCodeFilter.doFilter(SetProductCodeFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293)
at java.lang.Thread.run(Unknown Source)
请高手指教啊。freeer 不太懂。
FreeMarker template error!Expression org.userObject is undefined on line 102, column 29 in base/views/org/orgInfoMain.ftl.
The problematic instruction:
----------
==> ${org.userObject.users?size} escaped ${org.userObject.users?size?if_exists} [on line 102, column 27 in base/views/org/orgInfoMain.ftl]
----------Java backtrace for programmers:
----------
freeer.core.InvalidReferenceException: Expression org.userObject is undefined on line 102, column 29 in base/views/org/orgInfoMain.ftl.
at freeer.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freeer.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
at freeer.core.Dot._getAsTemplateModel(Dot.java:78)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.BuiltIn$sizeBI._getAsTemplateModel(BuiltIn.java:615)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.BuiltIn$if_existsBI._getAsTemplateModel(BuiltIn.java:674)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.Expression.getStringValue(Expression.java:93)
at freeer.core.DollarVariable.accept(DollarVariable.java:76)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.IfBlock.accept(IfBlock.java:82)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.IteratorBlock$Context.runLoop(IteratorBlock.java:160)
at freeer.core.Environment.visit(Environment.java:351)
at freeer.core.IteratorBlock.accept(IteratorBlock.java:95)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.EscapeBlock.accept(EscapeBlock.java:84)
at freeer.core.Environment.visit(Environment.java:196)
at freeer.core.Environment.process(Environment.java:176)
at freeer.template.Template.process(Template.java:231)
at com.opensymphony.webwork.views.freeer.FreeerResult.doExecute(FreeerResult.java:77)
at com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute(WebWorkResultSupport.java:109)
at com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:258)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.interceptor.TimerInterceptor.intercept(TimerInterceptor.java:78)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:272)
at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:237)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.chinaspis.base.filters.SetProductCodeFilter.doFilter(SetProductCodeFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293)
at java.lang.Thread.run(Unknown Source)
解决方案 »
- 为什么Web客户端浏览器无法申请到一个JSON文件的URI?
- jsp+servelet编码问题请教
- Overload和Override的区别
- jsp中Excel导入问题
- Eclipse项目导入问题
- hibernate 乐观锁问题
- ◎◎◎探讨◎◎◎做一个地域性门户网站需要多长时间,需要什么技能?
- 请指教jasperreport或者jfreereport的用法。因为很急而且以前没用过,所以请给个简单的例子,只要有一个图片再加库里一条记录就行
- 如何在javascript里面调用this.location="http://www.***.com"的页面里面的函数
- javaBean问题
- JAVA怎么样实现即时消息提醒?
- Tomcat路径问题jsp
<#list treeIterator as org><#if !(org.parent?exists)>
<script language="JavaScript">
myObject = new Object();
myObject.leaf=${org.leaf?string};
myObject.top=0;
myObject.bottum=0;
myObject.userSize=${org.userObject.users?size}; 这地方的错误,说是userObject 没定义
myObject.projectSize=${org.userObject.projects?size};
mTreeData.addTreeNode('c${org.userObject.id}','0',
new Array("${org.userObject.name}",
<#if (org.userObject.userSize>0)>
"<span title='�� �� ֯:${org.userObject.users?size}��\r\n������֯:${org.userObject.userSize-org.userObject.users?size}��'>${org.userObject.userSize}��</span>",
<#else>
" ",
</#if>
<#if (org.userObject.projectSize>0)>
"<span title='�� �� ֯:${org.userObject.projects?size}��\r\n������֯:${org.userObject.projectSize-org.userObject.projects?size}��'>${org.userObject.projectSize}��</span>"
<#else>
" "
</#if>
),
'parent.org_editFrame.location="loadOrg.action?organization.id=${org.userObject.id}"', true,
"", "folder_closed.gif", lStyleArr, myObject);
</script><#else> <script language="JavaScript">
myObject = new Object();
myObject.leaf=${org.leaf?string};
<#if (org.previousSibling?exists)>
myObject.top=${org.previousSibling.userObject.id};
<#else>
myObject.top=0;
</#if>
<#if (org.nextSibling?exists)>
myObject.bottum=${org.nextSibling.userObject.id};
<#else>
myObject.bottum=0;
</#if>
myObject.userSize=${org.userObject.users?size};
myObject.projectSize=${org.userObject.projects?size};
mTreeData.addTreeNode('c${org.userObject.id}','c${org.parent.userObject.id}',
new Array("${org.userObject.name}",
<#if (org.userObject.userSize>0)>
"<span title='����֯:${org.userObject.users?size}��\r\n������֯:${org.userObject.userSize-org.userObject.users?size}��'>${org.userObject.userSize}��</span>",
<#else>
" ",
</#if>
<#if (org.userObject.projectSize>0)>
"<span title='����֯:${org.userObject.projects?size}��\r\n������֯:${org.userObject.projectSize-org.userObject.projects?size}��'>${org.userObject.projectSize}��</span>"
<#else>
" "
</#if>
),
'parent.org_editFrame.location="loadOrg.action?organization.id=${org.userObject.id}"', true,
"", "folder_closed.gif", lStyleArr, myObject);
</script></#if>
</#list>
</HEAD>
<BODY leftmargin="2" topmargin="5" class="contentbodymargin">
<SCRIPT>
var stPad = new StickPad();
function copyFtItems(){
var cts = tabledivMain;
stPad.addItem(tabledivMain); stPad.copy();
stPad.clearAll();
alert("�����ɹ�!");
} var sMenu = new Menu("menu140");
//��ʼ������������<body></body>��
function initMenuT(){
sMenu.registerToDoc(sMenu);
var item = new MenuItem("../../images/tb-add.gif","�½�������֯","newOrg()",1,"JTreeNode","checkSelected");
sMenu.addItem(item);
item = new MenuItem("../../images/tb-change.gif","����֯","modifyOrg()",1,"JTreeNode","checkSelected");
sMenu.addItem(item);
item = new MenuItem("../../images/tb-delete3.gif","ɾ����֯","deleteOrg()",1,"JTreeNode","checkDelete");
sMenu.addItem(item);
sMenu.addLine();
item = new MenuItem("../../images/move-up.gif","����","moveUp()",1,"JTreeNode","checkMoveUp");
sMenu.addItem(item);
item = new MenuItem("../../images/move-down.gif","����","moveDown()",1,"JTreeNode","checkMoveDown");
sMenu.addItem(item);
item = new MenuItem("../../images/move.gif","�ƶ���...","moveOther()",1,"JTreeNode","checkMoveOther");
sMenu.addItem(item);
sMenu.addLine();
item = new MenuItem("../../images/excel.gif","���Excel�ļ�","exportExcelData()",1,"JTreeNode","");
sMenu.addItem(item);
item = new MenuItem("../../images/copy.gif","�����б�","copyFtItems();",1,"JTreeNode","");
sMenu.addItem(item); item = new MenuItem("../../images/tb-print16.gif","��ӡ","window.focus();window.print();",1,"JTreeNode","");
sMenu.addItem(item);
sMenu.addShowType("JTreeNode");
sMenu.addShowType("body");
}
</SCRIPT><div id="contentborder" >
<table><tr>
<td>
<div id="divMain" oncontextmenu="return ( mTree.OnMenuShow());" style="overflow :auto;behavior:url(../../common/JTableTree.htc)" onclick="return ( mTree.OnClick());"
onclicknode = "ClickNode();"
onclickplusminus = "ClickPlusMinus();"
onshownode = "shownode(true);"
onresizeend= ""
onhidenode = "shownode(false);"
>
</div>
</td>
</tr>
</table>
<@panes.topPanes/>
<SCRIPT> var moveUpNO=0;
var moveDownNO=1;
var moveOtherNO=2;
var deleteNodeNO=3;
function checkMove(mType,type){
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
return false;
}
if(type=="enabled"){
if(sNode.fid=='0') {
return false;
}
switch (mType){
case moveUpNO:
if(sNode.others.top==0) {
return false;
}
break;
case moveDownNO:
if(sNode.others.bottum==0) {
return false;
}
break;
case deleteNodeNO:
if((!sNode.others.leaf) || sNode.others.userSize>0 || sNode.others.projectSize>0){
return false;
}
break;
case moveOtherNO:
break;
}
}
return true;
}
function checkMoveUp(type,ids,names){
return checkMove(moveUpNO,type);
}
function checkMoveDown(type,ids,names){
return checkMove(moveDownNO,type);
}
function checkMoveOther(type,ids,names){
return checkMove(moveOtherNO,type);
}
function checkDelete(type,ids,names){
return checkMove(deleteNodeNO,type);
}
function exportExcelData(){
perspectiveWorkArea.location="exportExcelData.action";
} function newOrg() {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
alert("��ѡ���ϼ���֯��");
return;
} parent.org_editFrame.location="addOrg.action?parentOrg.id="+sNode.id.substring(1);
}
function modifyOrg() {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
alert("��ѡ��һ����֯��");
return;
}
parent.org_editFrame.location="addOrg.action?organization.id="+sNode.id.substring(1);
}
function deleteOrg() {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
alert("��ѡ��һ����֯��");
return;
}
if(confirm("ȷ��Ҫɾ��"+sNode.TextArray[0]+"����")){
perspectiveWorkArea.location="deleteOrg.action?organization.id="+sNode.id.substring(1);
}
}
function moveUp() {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
alert("��ѡ��һ����֯��");
return;
}
perspectiveWorkArea.location="moveUp.action?organization.id="+sNode.id.substring(1);
}
function moveDown() {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
alert("��ѡ��һ����֯��");
return;
}
perspectiveWorkArea.location="moveDown.action?organization.id="+sNode.id.substring(1);
}
var moveNodeId = "";
function moveOther() {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
alert("��ѡ��һ����֯��");
return;
}
var sParentNode = mTree.GetTreeNode(sNode.fid );
moveNodeId = sNode.id.substring(1);
link("selectOrg.action?organization.id="+sNode.id.substring(1)+"&parentOrg.id="+sParentNode.id.substring(1),500,400); }
function selectedFolder(selectId){
if(moveNodeId==""){
alert("û����Ҫ�ƶ�����֯!");
return;
}
perspectiveWorkArea.location="moveOther.action?organization.id="+moveNodeId+"&parentOrg.id="+selectId;
moveNodeId="";
}
function checkSelected(type,ids,names) {
var sNode = mTree.GetTreeNode(mTree.mSelected );
if (sNode == null) {
return false;
}
return true;
}
</SCRIPT>
</div>
</BODY>
</HTML>
</#escape>