Jsp 所选s标记默认值和所选值之间存在问题

Jsp 所选s标记默认值和所选值之间存在问题,jsp,struts2,drop-down-menu,Jsp,Struts2,Drop Down Menu,我在编辑/添加用户页面中有一个OrganizationName选择框 <s:select key="user.organisationname" name="entity.organisationId" list="organisationList" listKey="organisationId" listValue="organisationName"></s:select> 对于两种登录用户类型(系统管理员和组织管理员),我有两种情况 1) 现有用户、Orga

我在编辑/添加用户页面中有一个OrganizationName选择框

<s:select key="user.organisationname" name="entity.organisationId" list="organisationList" listKey="organisationId" listValue="organisationName"></s:select>

对于两种登录用户类型(系统管理员和组织管理员),我有两种情况

1) 现有用户、OrganisationName将根据其组织ID显示

2) 对于新用户,登录用户可以从选择框中选择任何所需的OrganizationName

对于系统管理员,选择框将显示所有组织名称。 但对于管理中的OrganizationIn,选择框将只显示其相关的组织名称。

我的问题是使用if-else检查登录用户是系统管理员还是组织管理员。如果登录用户是组织管理员,我禁用了选择框

问题就从这一点开始。当我禁用选择框时,我可以看到正确的组织名称。但是当我保存编辑过的用户时,从选择框返回的OrganizationID总是变为0。

即使禁用选择框,如何传递正确的值?

另一个问题:是否有任何方法可以将select标记的类似属性设置为visible=“false”?

谢谢。

设置为只读/不可更改

<s:select

    onfocus="this.defaultIndex = this.selectedIndex;"
    onchange="this.selectedIndex = this.defaultIndex;"
/>

@谢谢你的快速回复。你的小费很酷。但用户可以看到组织名称。如果我想限制用户不能看到其他组织名称,我能做什么?@Ischin,当我设置时,选择框消失,但选择框的标题消失。我怎样才能解决这个问题?谢谢。您需要更改周围标记的样式,或者根本不显示选择框,而是以另一种方式传递表单值(如果确实需要再次传递)。例如,如果一个隐藏字段不是管理员,则可以呈现该字段。@Ischin,谢谢您的宝贵提示。就像你说的,我先禁用了它。然后在表单提交时,我再次启用了它。工作顺利。非常感谢。:)@Dave
用于迭代
组织列表
,以获取所选
组织的
组织名称
。但我同意你的看法,我也会使用隐藏字段(与Hibernate一起)。e、 g.
${user.organization.name}
&
添加标记
jsp
以启用
语法突出显示
。。。。。
<s:form onsubmit="document.getElementById('sltOrgAdmin').disabled = false">
    <s:select id="sltOrgAdmin" disabled="true" />
</s:form>
<s:select cssStyle="visibility: hidden;" />