所以我一直在网上闲逛一段时间寻找这个答案。对于JSP,没有办法在Java scriptlet中使用文本字段吗?我知道在C#中你可以拥有
@Html.TextField();
这将创建一个文本字段供您用作C#代码。
为什么我要这样,是我抓住一个会话并检查用户属性是否存储了用户名。如果是,我不希望它显示用户名文本框。虽然我可以告诉我不能用java scriptlets做到这一点。
<%if(session.getAttribute("user") == null) %>
Username: <input type="text" name="name"><br/>
我有什么遗失的东西吗?
答案 0 :(得分:0)
这样可行,但最好使用JavaServer Pages Standard Tag Library和Expression 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。
是有意义的