java - 定义条件变量好还是不使用变量并每次检查条件好?

标签 java spring jsp jstl

检查一次条件,定义变量,然后使用这些变量是否更好?

<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/

相关文章:

java - 更新 JTextArea 以显示进度

java - JSP 呈现在 Spring 4 和 Tomcat 8.0.20 中不起作用

java - 如何对整数值使用 @Digits 验证

java - @Transient 在 JPA 中无法正常工作

java - 使用 servlet 登录,而不是验证->重定向方式

java - 如何使用 JSP 在 mysql 中显示 BLOB?

javascript - Jsoup 无法从网页中获取完整内容(没有错误/异常,但遗漏了一些内容)

java - 限制数字之间有小数

java - java中如何保护敏感数据

java - 将数据写入 csv 文件