是定义条件变量更好还是不使用变量并每次检查条件更好?
Is it better to define condition variables or to use no variables and check the condition each time?
检查一次条件,定义变量,然后使用这些变量是否更好?
<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
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 将不显示任何内容).
检查一次条件,定义变量,然后使用这些变量是否更好?
<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
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 将不显示任何内容).