检查条件一次,定义变量,然后使用这些变量是否更好?
<c:if test="${someCondition}">
<c:set var="varOne" value="1" />
<c:set var="varTwo" value="2" />
<c:set var="varThree" value="3" />
<c:set var="varFour" value="4" />
<c:set var="varFive" value="5" />
</c:if>
${varOne}
...
${varTwo}
...
${varThree}
...
${varFour}
...
${varFive}
或者最好不使用变量并在每次需要输出值时检查条件?
${someCondition ? "1" : ''}
...
${someCondition ? "2" : ''}
...
${someCondition ? "3": ''}
...
${someCondition ? "4": ''}
...
${someCondition ? "5": ''}
答案 0 :(得分:1)
如果要在页面中的许多地方显示每个变量,则首选(当检查条件一次时)将更为可取。因为它可以让你避免重复代码。
如果您只展示一次变量,则不需要额外的<c:if
,第二种方法就可以了。因为它更简单,更易读。
当然,这只是我的意见,但我更愿意将此逻辑移至控制器:
@Controller
public class MyController{
@RequestMapping("/my-mapping")
public String showView(ModelMap model){
model.addAttribute("varOne", someCondition?1:null);
model.addAttribute("varTwo", someCondition?2:null);
//etc ...
return "view-name";
}
}
在这种情况下,您的视图将保持清晰和简单,并且所有业务逻辑将在一个位置(顺便说一下,当您将null
作为值传递时,JSP将不会显示任何内容。