检查一次条件,定义变量,然后使用这些变量是否更好?
<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": ''}
最佳答案
如果您要在页面的多个位置显示每个变量,则第一种方法(仅检查一次条件时)会更可取。因为它可以让您避免重复代码。
如果您只显示一次变量,则不需要额外的 <c:if
第二种方法可以。因为它更简单,更具可读性。
当然,这只是我的意见,但我更愿意将此逻辑移至 Controller :
@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";
}
}
在这种情况下,您的 View 将保持清晰和简单,并且所有业务逻辑都将集中在一个位置(顺便说一句,当您将 null
作为值传递时,JSP 将不显示任何内容)。
关于java - 定义条件变量好还是不使用变量并每次检查条件好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805744/