私は最近、大学で Spring を使い始めたばかりなので、まだかなり迷っています。現在、Doodle をほとんどコピーするアプリケーションを作成しようとしています。
h2 データベースに対して実際にログインを検証し、利用可能なすべてのポーリングのリストにリダイレクトする login.jsp を構築することができました。ここで、セッション スコープから currentUser を取得して右上に表示し、ユーザーの署名だけでなく、さらなるアクションにも使用できるようにしたいと考えています。
これまでのところ、spring-config.xml を次のように編集しました。
<!-- Session Scope -->
<bean id="userInfo" class="de.nordakademie.iaa.nakdate.sessionbeans.UserInfo" scope="session">
</bean>
それから私はこれを入れました
<p align="right">%{#userInfo.username}</p>
ユーザーがログインしていない最初のページであっても、すべてのページに表示されます。それは賢明な方法ですか? そして、それはうまくいくでしょうか?
最後に、次のように UserInfo.java を作成しました。
package de.nordakademie.iaa.nakdate.sessionbeans;
public class UserInfo {
public String username;
public UserInfo(){
this.username = "Unregistered User";
}
}
また、ここでログイン アクションを公開します。
package de.nordakademie.iaa.nakdate.action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import de.nordakademie.iaa.nakdate.model.User;
import de.nordakademie.iaa.nakdate.service.UserService;
public class LogInUserAction extends ActionSupport {
private static final long serialVersionUID = 3734334931859908102L;
private transient UserService userService;
private transient User user;
private String email;
private String password;
@Override
public String execute() throws Exception {
List<User> users = userService.loadAll();
for (User currentUser : users) {
if (currentUser.getEmail().equals(getEmail())) {
if (currentUser.getPassword().equals(getPassword())) {
return SUCCESS;
}
}
}
addActionError(getText("E-Mail / Passwort falsch!"));
return ERROR;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
これを機能させる方法について誰かが助けてくれれば幸いです。どうもありがとうございました!
編集:デバッグタグを使用したところ、セッションが空であることがわかりました。実際にセッションに何かを入力するにはどうすればよいですか?