在我的jsp中我有这段代码:
.....
// get userid
long userid = com.liferay.portal.util.PortalUtil.getUserId(request);
String userName = com.liferay.portal.util.PortalUtil.getUserName(userid , "guest");
%>
<s:textfield name="user" value="<%=userName%>"></s:textfield>
我无法在文本字段中显示用户名值。
请帮助我。 感谢。答案 0 :(得分:1)
不允许Scriptlet与Struts标记一起使用。并且您无法访问脚本变量userName
,因为它不在值堆栈上。要使其可用,只需在值堆栈中创建一个具有脚本变量值的新变量。
<s:set var="userName"><%=userName%></s:set>
<s:textfield name="user" value="%{#userName}"/>
另一种不期望的方法是使用struts标签可访问的已知容器,如请求。
<% request.setAttribute("userName", userName); %>
<s:textfield name="user" value="%{#request.userName}"/>
您可能会注意到,在第一个示例中创建了新变量,并且脚本变量通过值传递给字符串打印到输出中。在第二个示例中,脚本变量通过引用传递。