1

在我的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>

我无法在文本字段中显示用户名值。

你能帮我吗。谢谢。

4

1 回答 1

1

Scriptlet 不允许与 Struts 标记一起使用。而且您无法访问脚本变量userName,因为它不在值堆栈上。要使其可用,只需在具有脚本变量值的值堆栈中创建一个新变量。

<s:set var="userName"><%=userName%></s:set>
<s:textfield name="user" value="%{#userName}"/> 

另一种意料之外的方法是使用已知容器,例如 struts 标签可访问的 request。

<% request.setAttribute("userName", userName); %>
<s:textfield name="user" value="%{#request.userName}"/>

您可能会注意到,在第一个示例中,创建了新变量并且脚本变量通过值作为字符串打印到输出中传递。在第二个示例中,脚本变量通过引用传递。

于 2013-04-20T09:20:40.997 回答