<table>
<c:if test="${output.list == nul}">
<tr><td><input type="text" /><select></select><input type="text" />
</td>
</tr>
</c:if>
<c:forEach var="iter" items="${output.list}">
<tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" />
</td>
</tr>
</c:forEach>
</tbody>
</table>
如果我的${list}
为空,如何在不重复代码或使用javascript的情况下显示.clone
行?
答案 0 :(得分:2)
我不知道我是否理解你的问题。如果您想要输出包含所有内容的一行,当list为空时,请尝试下一步:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//Represents how you are performing data storage, yours will most likely be different
DataObject dataObject = getItem(position);
//NOTE: comparing strings like this can cause errors, especially in cases where the display text should be localized
boolean isCustomer = dataObject.getTypeText().equalsIgnoreCase("customer");
//Sets the text and hides/shows the EditText
holder.customerView.setText(dataObject.getTypeText()); //Should be a string resource, or correctly localized
holder.editText.setVisibility(isCustomer ? View.GONE : View.VISIBLE);
}
对于使用 <table>
<c:forEach var="i" begin="0" end="${not empty list?(fn:length(list)-1):0}">
<tr class="clone">
<td>
<input type="text" />
<select></select>
<input type="text" value="${list[i]!=null?list[i].getVal():''}" />
</td>
</tr>
</c:forEach>
</tbody>
命名空间,只需在文件的开头添加fn:
Udate :根据问题更改进行了更改
答案 1 :(得分:1)
如果列表为空,则将空值添加到列表中。您可以在servlet或JSP中执行此操作,但在JSP中,您必须编写其他Java代码来修改列表。
<table>
<c:set var="list" value="${output.list}"/>
<c:if test="${empty list && list != null}">
${list.add(null)}
</c:if>
<c:forEach var="iter" items="${list}">
<tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" />
</td>
</tr>
</c:forEach>
</tbody>
</table>