在textfield中插入值 - struts2 + liferay

时间:2013-04-19 23:55:51

标签: java jsp struts2 liferay

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

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

请帮助我。 感谢。

1 个答案:

答案 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}"/>

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