问题描述
我的 JSP 正在从 URL 获取参数,并且工作正常。但如果 URL 中没有参数,则文本字段的值显示
com.opensymphony.xwork2.DefaultTextProvider
。
就像当 URL 为 login.jsp?user=USER1
时,它输出 USER1
。但如果它是 login.jsp
,它会显示 com.opensymphony.xwork2.DefaultTextProvider
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<%@ taglib prefix="html" uri="/struts-tags"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
String user = request.getParameter("user");
if(user == null) user = "";
<c:set var="user"><%=user%></html:set>
<c:textfield id="user" name="user" value='%{#user}'/>
解决方法
您不需要使用 scriptlet 和 JSTL 标签来获取请求参数。
相反,您可以通过 OGNL 访问参数。为 taglib 使用命名前缀。
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:textfield id="user" name="user" value="%{#parameters.user}"/>