0

所以我一直在网上徘徊一段时间来寻找这个答案。有没有办法在 JSP 的 java scriptlet 中拥有文本字段?我知道在 C# 中你可以拥有

@Html.TextField();

这将创建一个文本字段供您用作 C# 代码。

为什么我想要这个,是我正在抓取一个会话并检查用户属性是否存储了用户名。如果是,我不希望它显示用户名文本框。尽管据我所知,我不能用 java scriptlet 做到这一点。

<%if(session.getAttribute("user") == null) %>
Username: <input type="text" name="name"><br/>

有什么我想念的吗?

4

1 回答 1

0

这将起作用,但最好使用JavaServer Pages 标准标记库表达式语言
而不是 scriptlet。它往往会使 JSP 页面的维护复杂化。

您可以在 JSP 页面上设置作用域变量。以这种方式:

<c:set var="myVariable" scope="page" value="expression"/>

借助带有 EL 的 JSTL,您的情况可以轻松解决:

<c:if test="${sessionScope.user eq null}">
   <c:out value="Username: ${myVariable}" />
</c:if>

如果您有更复杂的逻辑,那么创建自定义标签是有意义的。

于 2012-04-30T00:16:49.890 回答