Session Freemarker Servlet和Struts:访问模板中的java方法和变量
我想访问Struts web应用程序的会话、应用程序和请求变量。 它告诉我会话的类型是“HttpSessionHashModel”,在查找API时,我看到这个类有一个方法“isEmpty()”。所以我试着举个例子Session Freemarker Servlet和Struts:访问模板中的java方法和变量,session,servlets,struts,freemarker,Session,Servlets,Struts,Freemarker,我想访问Struts web应用程序的会话、应用程序和请求变量。 它告诉我会话的类型是“HttpSessionHashModel”,在查找API时,我看到这个类有一个方法“isEmpty()”。所以我试着举个例子 <#assign a = Session.isEmpty()> 但它告诉我没有这样的元素“Session.isEmpty” 有人知道为什么它不起作用吗 在会话中,我可以通过访问几个类 (它告诉我b的类型是freemarker.ext.beans.StringModel
<#assign a = Session.isEmpty()>
但它告诉我没有这样的元素“Session.isEmpty”
有人知道为什么它不起作用吗
在会话中,我可以通过访问几个类
(它告诉我b
的类型是freemarker.ext.beans.StringModel
),但我既不能调用类StringModel
的方法,也不能访问“classname”中存储的对象和方法
希望有人能帮助您使用
@s
宏:
与Struts一起分发的标记会自动提供给FreeMarker模板。要使用任何标记,请在标记名称前添加“@s.”。比如:
参考资料
Session.empty
有效吗?您必须找出Session
的实际类别。这里有两个类:原始Java类和FreeMarker的包装器类。我知道一些肮脏的把戏${Session}
可能会打印toString()
的结果,该结果随后用于包含原始Java类名<代码>${Session?root}可能会使FreeMarker生气,并将包装器类名打印到错误消息中。哦,更妙的是,你试过了:${k},
谢谢你的回答(很抱歉延迟回复..)。我已经尝试了您的建议,所以Session的类型似乎是HttpSessionHashModel,但我无法以某种方式访问此类的方法。
<@s.if test="printName">
<@s.property value="myBeanProperty" />
</@s.if>