我想知道是否可以在列标记内部呈现自定义html,这是显示表标记的一部分。
例如,我希望我的colum里面有一些下拉列表?
使用简单的html,如:
<table>
...
<tr>
<td>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</td>
</tr>
</table>
是否可以在显示栏中嵌入选择标签?这是显示栏
的演示<display:column property="${displayElem.name}" escapeXml="true" sortable="true" titleKey="errorHandler.${displayElem.name}" style="width: ${displayElem.length}" />
编辑:当我尝试删除显示列中的属性时,我只获取表格单元格中的html源代码,而不是该代码的html元素呈现。
<display:column escapeXml="true"
sortable="true" titleKey="errorHandler.${displayElem.name}"
style="width: ${displayElem.length}" >
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</display:column>
解决方案:删除escapeXml =“true”属性解决了问题
<display:column
sortable="true" titleKey="errorHandler.${displayElem.name}"
style="width: ${displayElem.length}" >
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</display:column>
最终控制的解决方案2
创建类,使用装饰器类扩展它并使用显示表标签
public class YourDecorationClass extends TableDecorator {
public String getAction() {
String code = "";
code = "<select>" +
"<option value='volvo'>Volvo</option>" +
"<option value='volvo'>Saab</option>" +
"<option value='volvo_RETRY'>Mercedes_RETRY</option>" +
"<option value='audi'>Audi</option>";
return code;
}
}
并在display table标签中使用decorator参数
decorator="com.yourpackage.util.table.YourDecorationClass"
当然从显示列标记中删除escapeXml =“true”。
答案 0 :(得分:4)
您可以在Object的属性中设置HTML字符串。例如,在您的情况下,您可以在$ {displayElem.name}中设置HTML。它将在Grid中生成一个Combobox。
setName("<select><option value=\"JS\">John Seam<option></select>");
答案 1 :(得分:1)
是的,当然有可能。 documentation of the tag说:
显示表内行对象的属性。必须嵌套在Table标签内。显示的值将是装饰器的结果(如果有的话);否则由'property'属性命名的属性;或者如果'property'属性为null,则然后是评估标记的JSP主体的结果。
(强调我的)