所以我选择了每个科目的成绩.它是预定义的,因此我不必将等级存储为数据库中的表.我有资格的名单,我使用JSTL每个这样的:<c:forEach items="${qualificationdetails}" var="qd">.
对于每个项目,我正在制作这样的选择.
<select class="grade" title="Grade Obtained">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
Run Code Online (Sandbox Code Playgroud)
是否可以使用我的变量qd设置所选选项?就像是
<option value="${qd.grade}" selected="selecetd">${qd.grade}</option>
Run Code Online (Sandbox Code Playgroud)
这将为选择添加重复选项.我认为用等级制作一个阵列并将其发送到生成选项会有点"笨拙".有任何想法吗 ?
Bal*_*usC 21
你可以让JSP selected有条件地渲染属性.
<select class="grade" title="Grade Obtained">
<option value="1" ${qd.grade == '1' ? 'selected' : ''}>1</option>
<option value="2" ${qd.grade == '2' ? 'selected' : ''}>2</option>
<option value="3" ${qd.grade == '3' ? 'selected' : ''}>3</option>
<option value="A" ${qd.grade == 'A' ? 'selected' : ''}>A</option>
<option value="B" ${qd.grade == 'B' ? 'selected' : ''}>B</option>
<option value="C" ${qd.grade == 'C' ? 'selected' : ''}>C</option>
<option value="D" ${qd.grade == 'D' ? 'selected' : ''}>D</option>
<option value="E" ${qd.grade == 'E' ? 'selected' : ''}>E</option>
</select>
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建一个等级的集合/数组并将其存储在应用程序范围中,以便它可以在EL中使用,以便您可以使用它进行循环<c:forEach>.我不确定那会是多么"笨重".您可以使用<c:set>它们存储commaseparated并用于fn:split()拆分它们<c:forEach>.
<c:set var="grades" value="1,2,3,A,B,C,D,E" scope="application" />
<select class="grade" title="Grade Obtained">
<c:forEach items="${fn:split(grades, ',')}" var="grade">
<option value="${grade}" ${qd.grade == grade ? 'selected' : ''}>${grade}</option>
</c:forEach>
</select>
Run Code Online (Sandbox Code Playgroud)
这样您最终会获得更多DRY代码.
| 归档时间: |
|
| 查看次数: |
24077 次 |
| 最近记录: |