2009-09-18 78 views
1

在JSP/Struts1安装中有没有更简单的方法来完成这项工作?干净的方式来有条件地呈现HTML视图?

...这里的一些HTML ...

编辑:在管理员模式下,我想有从表单元素,例如 获得额外的参数从表单元素:

 
input type="text" value="Test user" name="Owner" 

编辑2:其实,我的问题是非常相似,被问的问题:Conditionally Render In JSP By User

但我真的不从一开始的“伪代码”可能的答案

回答

0

SessionConfig在JSP中作为bean公开(作为request/session/Struts Form的一部分)?如果不是,您可以将其公开。如果它是一个包含全局设置的静态类(根据它的外观,这是一种可能性),您可以创建一个小包装器并将其放入servlet上下文中,然后您可以从Struts标记中访问该包装器,如scope="application" 。 一旦这样做了,你可以通过Struts标签检查条件:

<logic:equal name="sessionConfig" property="adminMode" value="true"> 
... your HTML here 
</logic:equal> 

或者,如果你使用的EL/JSTL,同样可以通过<core:if>来完成。

+0

目前,而非sessionConfig是使用MyFormIncludingConfigParameters 在DYNAFORM我也有一个属性adminMode 它的工作原理,但其中的概念仍然有点浑浊(什么范围=“应用程序”的意思,我怎么coud触发非-DynaForm类) – poseid 2009-09-21 13:51:00

+0

scope =“application”意味着Struts将在ServletContext中查找一个bean。这是J2EE规范的一部分,您可以在Sun的教程中阅读它。对于非DynaForm类,它必须在struts config中定义为form(它将自动绑定到请求或会话,如指定的那样),或者您必须手动绑定它以在您的操作中请求;你可以使用上面的代码替换'sessionConfig'和你绑定它的属性名称。 – ChssPly76 2009-09-21 16:13:08

1

没有更多的信息,很难回答这个问题,但我认为,而不是单独的意见:一个用于管理模式,一个用于正常模式。将页面的各个部分提取为瓦片可以帮助您轻松完成此操作。请参见:http://tiles.apache.org/

相关问题