Java 使用OGNL自定义struts2 textfield标记的值
我有一个包含用户信息的数据库。用户登录后,我在会话中注册了该用户,如下所示:Java 使用OGNL自定义struts2 textfield标记的值,java,struts2,ognl,Java,Struts2,Ognl,我有一个包含用户信息的数据库。用户登录后,我在会话中注册了该用户,如下所示: ActionContext.getContext().getSession().put("loggedUser", user); 我想在我的jsp页面中获取用户信息,用这些信息填充struts2文本字段。我尝试使用以下代码,但不起作用: <%@page import="java.util.Map"%> <%@page import="com.opensymphony.xwork2.ActionCon
ActionContext.getContext().getSession().put("loggedUser", user);
我想在我的jsp页面中获取用户信息,用这些信息填充struts2文本字段。我尝试使用以下代码,但不起作用:
<%@page import="java.util.Map"%>
<%@page import="com.opensymphony.xwork2.ActionContext"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="UbiMail.*" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
User user = (User) ActionContext.getContext().getSession().get("LoggedUser");
%>
<html>
<head>
</head>
<body>
<s:form method="POST" action="UpdateAction">
<s:actionerror/>
<s:textfield name="uname" label="Username" value="#session.LoggedUser.getUsername"/>
<s:property value="#session.LoggedUser.getUsername()"/>
<s:password name="password" label="Password"/>
<s:password name="cPassword" label="Confirm password"/>
<s:textfield name="fname" label="First name" value="#session.loggeduser.getFname()"/>
<s:textfield name="lname" label="Last name" value="#session.loggeduser.getLname()"/>
<s:textfield name="popServer" label="POP server" value="#session.loggeduser.getPopServer()"/>
<s:textfield name="popUsername" label="POP username" value="#session.loggeduser.getPopUsername()"/>
<s:password name="popPassword" label="POP password"/>
<s:textfield name="mobilePhone" label="Mobile phone" value="#session.loggeduser.getMobilePhone()"/>
<s:textfield name="filter" label="Notification filter" value="#session.loggeduser.getSms()"/>
<s:checkbox name="sms" label="Enable SMS notification"/>
<s:submit value="Update"/>
</s:form>
</body>
我需要你的帮助。请不要用这个
<s:textfield name="uname" label="Username" value="#session.LoggedUser.getUsername"/>
用这个
<s:textfield name="uname" label="Username" value='<s:property value="%{#session.loggedUser.getUsername}"/>'/>
类似地,您可以为其他字段执行此操作
另一件事是不匹配的LoggedUser
和LoggedUser
,在Java代码键中是LoggedUser
,而不是LoggedUser
,因此在jsp中使用LoggedUser
离题:
我认为您不需要在jsp代码中使用scriptlet。而不是这个
<s:textfield name="uname" label="Username" value="#session.LoggedUser.getUsername"/>
用这个
<s:textfield name="uname" label="Username" value='<s:property value="%{#session.loggedUser.getUsername}"/>'/>
类似地,您可以为其他字段执行此操作
另一件事是不匹配的LoggedUser
和LoggedUser
,在Java代码键中是LoggedUser
,而不是LoggedUser
,因此在jsp中使用LoggedUser
离题:
我认为您不需要在jsp代码中使用scriptlet。
此标记将生成名为“uname”且值为“#session.LoggedUser.getUsername”的文本输入
您希望从会话中读取值。当然,您可以通过以下方式读取值:
<s:textfield name="#session.LoggedUser.getUsername" label="Username" value="#session.LoggedUser.getUsername"/>
但我认为您不需要输入名称“#session.LoggedUser.getUsername”)
因此,解决方案是:
<input type="text" name="uname" value="<s:property value="#session.LoggedUser.username"/>"/>
此标记将生成名为“uname”且值为“#session.LoggedUser.getUsername”的文本输入
您希望从会话中读取值。当然,您可以通过以下方式读取值:
<s:textfield name="#session.LoggedUser.getUsername" label="Username" value="#session.LoggedUser.getUsername"/>
但我认为您不需要输入名称“#session.LoggedUser.getUsername”)
因此,解决方案是:
<input type="text" name="uname" value="<s:property value="#session.LoggedUser.username"/>"/>
在Struts2.3上运行:value=“%%{session.loggedUser.username}”
在Struts2.3上运行:value=“%%{session.loggedUser.username}”
这不起作用
value="#session.LOGIN.name"
这是有效的
value="%{#session.LOGIN.name}"
这不起作用
value="#session.LOGIN.name"
这是有效的
value="%{#session.LOGIN.name}"
抱歉,我试图使用您的解决方案,但它不起作用。谢谢你的时间:)我认为“#session.LoggedUser.username”中的错误“它必须是”#session.LoggedUser.username”。抱歉)抱歉,我尝试使用您的解决方案,但无效。谢谢你的时间:)我认为“#session.LoggedUser.username”中的错误“它必须是”#session.LoggedUser.username”。(对不起)