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

标签 java spring forms jsp select

我正在尝试从 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/

相关文章:

java - Clojure 中函数的类型提示

java - 是否可以使测试方法参数化,而不是整个类?

java - 刚接触 Maven 我的 Spring jar 在哪里

python - 损坏的图像 - Google App Engine

ios - Swift:无法在 Xcode 中导入框架,遇到错误: 'no such a moudle'(使用 cocoapods 安装)

java - Spark LuceneRDD - 它是如何工作的

java - 错误的越界异常

python - 带有不在模型中的额外字段的 Django ModelForm

java - 使一个类成为 Mockito 模拟而不调用模拟

java - 我用于选择操作的 JDBCTemplate 代码有什么问题?