Java EE在scriptlet中没有文本字段吗?

时间:2012-04-29 23:46:42

标签: java html java-ee

所以我一直在网上闲逛一段时间寻找这个答案。对于JSP,没有办法在Java scriptlet中使用文本字段吗?我知道在C#中你可以拥有

@Html.TextField();

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

为什么我要这样,是我抓住一个会话并检查用户属性是否存储了用户名。如果是,我不希望它显示用户名文本框。虽然我可以告诉我不能用java scriptlets做到这一点。

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

我有什么遗失的东西吗?

1 个答案:

答案 0 :(得分:0)

这样可行,但最好使用JavaServer Pages Standard Tag LibraryExpression language
 而不是scriptlet。它往往会使JSP页面的维护变得复杂。

您可以在JSP页面上设置范围变量。以这种方式:

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

在JSTL和EL的帮助下,您的情况很容易解决:

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

如果您有更复杂的逻辑,那么创建custom tags

是有意义的