读书人

jstl 的一些奇怪有关问题

发布时间: 2012-12-28 10:29:05 作者: rapoo

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> 时就可以找到了 而且类型不变

读书人网 >JavaScript

热点推荐