0

ユーザー情報を含むデータベースがあります。ユーザーがログオンしたときに、次のようにユーザーをセッションに登録しました。

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>

助けてください。

4

4 に答える 4

2

これの代わりに

<s:textfield name="uname" label="Username" value="#session.LoggedUser.getUsername"/>

これを使って

<s:textfield name="uname" label="Username" value='<s:property value="%{#session.loggedUser.getUsername}"/>'/>

同様に、残りのフィールドについても行うことができます。

あなたがミスマッチLoggedUserしているもう1つのことはloggedUser、あなたのJavaコードキーではloggedUserありませんLoggedUser.jspの使用ではloggedUser.

トピック外: jsp コードでスクリプトレットを使用する必要はないと思います。

于 2012-05-23T06:36:50.753 に答える
1

このタグは、名前が「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"/>"/>
于 2012-05-23T07:01:15.200 に答える
1

Struts 2.3 の場合:value="%{#session.loggedUser.username}"

于 2013-09-09T16:49:23.093 に答える
-1

これは機能していません

 value="#session.LOGIN.name"

これは機能しています

 value="%{#session.LOGIN.name}"
于 2015-05-26T06:40:56.927 に答える