jstl 的一些奇怪问题
最近遇到一个比较奇怪的问题
以下是一个bean类
public class PersonBasic {protected List<String> chName;protected List<String> enName;protected List<String> sex;protected List<String> birthdate;protected List<String> marital;protected List<String> height;protected List<String> email;/* .. get set 省略*/}假设 已有一个实体personBasic 的sex=[女]
现想在页面遍历显示personBasic.sex
<td>性别</td><td><c:import url="tmp/StringList_tmp.jsp"><c:param name="items" value="${personBasic.sex }"/></c:import><ul><c:forEach items="${personBasic.sex}" var="i" varStatus="s"><li>${i}</li></c:forEach></ul></td>StringList_tmp.jsp 代码如下
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><ul><c:forEach items="${param.items}" var="i" varStatus="s"><li>${i}</li></c:forEach></ul>但是 这两种的输出结果 且不同
性别 [女]
女
为什么 通过
<c:import url="tmp/StringList_tmp.jsp">
<c:param name="items" value="${personBasic.sex }"/>
</c:import>
的会有[]号葛
要怎样改 才可以 令到
<c:import url="tmp/StringList_tmp.jsp">
<c:param name="items" value="${personBasic.sex }"/>
</c:import>
和遍历时输出效果一样没有[]
因为 现在 这个StringList_tmp.jsp 里面的只是 测试代码 实际上 这个模板 会比较复杂 而且 PersonBasic的属性有几十个 都是List<String>的 如果 不用模板来管理的话 维护 会超麻烦……
希望各位 大牛可以帮忙解答一下 大家研究研究 最后系 高手Ben的帮助下 完美解决问题
<td>性别</td><td><c:set var="itemList" value="${personBasic.sex}"/><%@ include file="tmp/StringList_tmp.jsp"%></td>初步估计
<c:param name="itemList" value="${personBasic.sex }"/> 这里是将 参数 用get方法传到 目标页 所以 这里的List 变成toString了 然后 itemList="[aa,bb]" 在<c:forEach> 解析为 {'[aa','bb]'}
而用<c:set> 将值保存到 request ,<%@ include> 时就可以找到了 而且类型不变