사용자가 이름을 입력하고 제출할 수있는 간단한 응용 프로그램이 struts 2에 있습니다. struts 2 액션 클래스의 서버 측에서 새 세션이 생성되고 세션에 사용자 이름 값이 저장됩니다. 세션에 저장된 값을 표시하지만 아무것도 표시하지 않습니다.
Index.jsp의 코드는 다음과 같습니다.
<body>
<form action="welcomeUser.action">
<input type="text" name="user">
<input type="submit" value="Submit">
</form>
</body>
struts.xml의 코드는 다음과 같습니다.
<action name="welcomeUser" class="hart.test.Welcome">
<result name="success">user.jsp </result>
</action>
hart.test.Welcome의 코드는 다음과 같습니다.
public class Welcome extends ActionSupport
{
private String user;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String execute()
{
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session=request.getSession();
//Checking session is new and creating a session
if (session.isNew() == false) {
session.invalidate();
session = request.getSession(true);
}
session.setAttribute("user1", user);
return SUCCESS;
}
}
User.jsp의 코드는 다음과 같습니다.
<body>
Welcomeee <s:property value="%{#session.user1}"/>
</body>
문제는 'Welcomeee'만 표시된다는 것입니다.
Struts2는 기본 HttpSession에 대한 래퍼 인 세션 맵을 사용합니다. 이 답변에 설명 된 것처럼 SessionAware 인터페이스를 구현하여 사용하십시오 .
public class Welcome extends ActionSupport implements SessionAware {
private Map<String,Object> session;
public void setSession(Map<String,Object> session) {
this.session = session;
}
private String user;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String execute() {
session.put("user1", user);
return SUCCESS;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다