gpt4 book ai didi

java - :option in form:select 形式的奇怪结果

转载 作者:行者123 更新时间:2023-12-01 09:17:51 24 4
gpt4 key购买 nike

我正在尝试从 form:select 中预先选择一些值标签。那么,让我们看一下下面的示例类:

public class Post
{
private boolean anonymize;
private boolean videoRequired;

/* getters, setters */
}

如您所见,有两个 boolean 字段。我在 JSP 中使用第一个,如下所示:

<label>Anonymize</label>
<form:select path="anonymize" id="anonymize" class="form-control">
<form:option value="true" label="Yes" selected="${ (post.anonymize) ? true : ''}" />
<form:option value="false" label="No" selected="${ (!post.anonymize) ? true : ''}" />
</form:select>

当我检查该元素时,结果如下(假设 anonymizetrue ):

<select id="anonymize" name="anonymize" class="form-control">
<option selected="true" value="true">Yes</option>
<option value="false">No</option>
</select>

到目前为止一切顺利。
现在我对另一个 boolean 字段 videoRequired 执行完全相同的操作。首先是 JSP:

<label>Video required</label>
<form:select path="videoRequired" id="videoRequired" class="form-control">
<form:option value="true" label="Yes" selected="${ (post.videoRequired) ? true : '' }" />
<form:option value="false" label="No" selected="${ (!post.videoRequired) ? true : '' }" />
</form:select>

这会导致(再次假设 videoRequired 也是 true ):

<label>Video required</label>
<select id="videoRequired" name="videoRequired" class="form-control">
<option selected="true" value="true">Yes</option>
<option value="false" selected="selected">No</option>
</select>

看一下这一行: <option value="false" selected="selected">No</option>

这怎么可能发生?我已经坚持了几个小时了,我什至尝试过 <c:choose>标记,然后对 selected 进行硬编码属性 - 它给了我完全相同的奇怪结果。谁能解释一下我哪里出了问题?我正在绞尽脑汁,因为我在两个领域都做了同样的事情,但仍然一个有效,另一个无效。顺便说一句,当我查看 mysql 时,两个字段都已正确设置。

最佳答案

为了预先选择 form:select 元素,您可以在返回 View 的 Controller 方法中将相应的变量 anonymize 设置为 true。

@Controller
public String getForm(ModelMap model, Post post){
post.setVideoRequired(true);
return "view-name";
}

关于java - :option in form:select 形式的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com