在JSP中创建自定义标记以获取对象

时间:2012-05-01 05:00:45

标签: jsp servlets jsp-tags

我想创建一个自定义标记,可以检索由其SimpleTagSupport类发送的对象集合。例如

<myTag:collection var="o" id="xx" />

这里var="o"用于保存集合的检索对象。我应该迭代它并做一些事情。然后EL用于获取对象的值。让我知道任何展示如何编写SimpleTagSupport类的示例代码 - doTag()方法就足够了,或者我可以找到解决方案的任何链接。

修改
我必须从session获得一个对象并将其传递给java类以获取包含集合的resultSet。 可以使用脚本(<% .. %>)完成。但我认为这不是一个好习惯。这就是我寻求ELTags的解决方案的原因。

2 个答案:

答案 0 :(得分:2)

您可以通过以下链接查看教程中的清晰示例,需要花费1小时到2小时的时间才能完成,但您将很好地理解EL的概念,值得一读。

  1. 表达语言(PDF),您可以直接转到“访问收藏集”部分
  2. JSP-EL(book chapter
  3. 希望这有帮助。

答案 1 :(得分:0)

如果是这样的话,请考虑以下代码我们将它用于一个非常大的项目 你想我会为它准备解释以及周期的额外代码

<td height="30" nowrap  class="label" id="lblHumanTypes" dir="${local["OP_DIRECTION"]}">${descriptionsTable["EditEmHumanCases"]["ddlHumanTypes"]}</td>
                                        <td width="1%">:</td>
                                        <td height="30" style="text-align:${local["ALIGN"]}" colspan="3">
                                            <select  id="ddlHumanTypes" name="ddlHumanTypes" style="width:160px">
                                                <option value="-1">${local["SELECT"]}</option>
                                                <c:forEach var="humanTypes" items="${LK_HUMAN_TYPES}">
                                                    <c:if test="${humanTypes.key ne '1' and humanTypes.key ne '2' and humanTypes.key ne '3' and humanTypes.key ne '4' and param.humanTp eq humanTypes.key}">
                                                        <c:if test="${emHumanCasesView.humanTp eq humanTypes.key}">
                                                            <option value="${humanTypes.key}" selected>${humanTypes.value.humanTpDesc}</option>
                                                        </c:if>
                                                    </c:if>
                                                </c:forEach>
                                            </select>
                                        </td>
                                        <td  id="msgHumanTypes"></td>

此处LK_HUMAN_TYPES在表oracle上部署一次 有一个带有setter和getter方法的java类 和 私人会员 在jsp中使用