EL如何作用于物体?

问题描述

目前,我正在研究有关Spring框架的书,其中有几件事使我感到困惑。

我正在学习如何使用JSTL和从控制器传递来的Question对象列表创建调查表。 Question对象可以是多项选择格式或描述格式。我们先来看一下代码

Question.class

public class Question {

    private String title;
    private List<String> options;

    public Question(String title,List<String> options) {
        this.title = title;
        this.options = options;
    }

    public Question(String title) {
        this(title,Collections.<String>emptyList());
    }

    public String getTitle() {
        return title;
    }

    public List<String> getoptions() {
        return options;
    }   

    public boolean isChoice() {
        return options != null && !options.isEmpty();
    }
}

令人困惑的部分是作者如何使用EL形式引用每个对象的字段和方法

这是表单源代码的一部分。

<c:forEach var="q" items="${questions}" varStatus="status">     
<p>
    ${status.index + 1}. ${q.title}<br/>
            
    <c:if test="${q.choice}">
        <c:forEach  var="option" items="${q.options}">
            <label> 
                <input type="radio" name="responses[${status.index}]" value="${option}">
                ${option}
            </label>
        </c:forEach>    
    </c:if>
    <c:if test="${!q.choice}">
        <input type="text" name="responses[${status.index}]">
    </c:if>
</p>

这是问题。您可以在if语句中找到q.choice,但是它来自哪里?我认为这是Question类的isChoice()方法,但这不是getter或setter方法。是不是应该是q.isChoice()?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)