如何解决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 举报,一经查实,本站将立刻删除。