【问题标题】:Checked radion button based on model variable + Spring forms + JSP基于模型变量的选中单选按钮+弹簧形式+ JSP
【发布时间】:2016-10-27 19:30:47
【问题描述】:

我的模型名为cuntry.java,变量为lang。我想根据lang 检查JSP 中的单选按钮选项。它可以是“EN”或“FR”。当我写下面的代码时,在 JSP 页面中抛出错误。

代码:

<form:radiobutton path="lang" id="language" value="FR" name="radios" <c:if ${cuntry.lang == 'FR' ? 'checked="checked"' : '' } /> ></form:radiobutton>

错误:Unterminated &amp;lt;form:radiobutton tag

【问题讨论】:

    标签: spring jsp spring-mvc jstl spring-form


    【解决方案1】:

    表单标签中有多个错误。使用 Spring 标签时,您可以不指定 idname 属性。它们将从path 变量自动生成。不允许在另一个标签 &lt;form:radiobutton ... /&gt; 中添加标签 &lt;c:if ... /&gt;。也删除结束标签。这是正确的方法

    <form:radiobutton path="lang" value="FR" checked="${cuntry.lang == 'FR' ? 'checked' : '' }" />
    

    如果cuntry.lang的值为FR,则Spring标签会产生如下HTML(编译后)

    <input id="lang" name="lang" checked="checked" type="radio" value="FR" />
    

    否则

    <input id="lang" name="lang" type="radio" value="FR" />
    

    如果你绝对需要属性id = languagename = radios,你不能使用Spring标签。

    你会找到一个很好的例子here

    【讨论】:

      【解决方案2】:

      &lt;c:if&gt; 标签作用于标签而不是属性。结果,您的 html 语法变得无效。

      好久没做jsp了。这应该或多或少起作用:

      <form:radiobutton checked="${cuntry.lang == 'FR' ? 'checked':''}" path="lang" id="language" value="FR" name="radios">
      </form:radiobutton>  
      

      如果你坚持为此使用&lt;c:if&gt;标签,你可以这样做:

      <c:if test="${cuntry.lang == 'FR'}">
          <form:radiobutton checked="checked" path="lang" id="language" value="FR" name="radios">
          </form:radiobutton> 
      </c:if>
      <c:if test="${cuntry.lang != 'FR'}">
          <form:radiobutton path="lang" id="language" value="FR" name="radios">
          </form:radiobutton> 
      </c:if>  
      

      你也可以使用&lt;c:choose&gt;,&lt;c:when&gt;,&lt;c:otherwise&gt;标签来解决这个问题。

      显然第一个解决方案看起来更好。

      【讨论】:

        猜你喜欢
        • 2021-06-24
        • 2013-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-29
        • 1970-01-01
        • 2016-08-30
        • 2020-03-08
        相关资源
        最近更新 更多