问题描述
目前,我正在研究有关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 (将#修改为@)