Java Struts 2如果其他如果
我在Java Struts 2如果其他如果,java,jsp,session,if-statement,struts2,Java,Jsp,Session,If Statement,Struts2,我在UserAction类的会话中设置了一个属性,该属性将在JSP中检索。从会话中检索到的属性将控制页面的显示方式。其目的是在登录后根据用户(0=guest,1=admin,2=user)的类型打开/关闭JSP的某些部分 动作类: public class UserAction extends ActionSupport implements SessionAware { private static final long serialVersionUID = 1L; priv
UserAction
类的会话中设置了一个属性,该属性将在JSP中检索。从会话中检索到的属性将控制页面的显示方式。其目的是在登录后根据用户(0=guest,1=admin,2=user)的类型打开/关闭JSP的某些部分
动作类:
public class UserAction extends ActionSupport implements SessionAware {
private static final long serialVersionUID = 1L;
private Map<String, Object> session;
private String userId;
private String userPassword;
private String userEmail;
private int userType;
private Date registeredDate;
@Override
public String execute() {
UserManager um = new UserManager();
String registeredPassword = um.getCurrentUserDetail("user_password",
getUserId());
if (getUserPassword().equals(registeredPassword)) {
String currentUserId = um.getCurrentUserDetail("user_id", userId);
int currentUserType = um.getCurrentUserType(userId);
session.put("currentUserId", (String) currentUserId);
session.put("currentUserType", (Integer) currentUserType);
System.out.println("You have successfully logged in!");
return SUCCESS;
}
System.out.println("Your login has failed!");
return ERROR;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
// getters and setters
}
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page import="com.mypackage.model.UserAction"%>
<html>
<head>
<title>My Site - Home</title>
<%@ include file="css/style.css"%>
<%@ include file="css/style2.css"%>
<s:set var="type" value="0" />
<s:if test='#session.containsKey("currentUserType")'>
<s:set var="type" value='#session["currentUserType"]' />
</s:if>
</head>
<body>
<div id="wrapper">
<div id="inner">
<div id="header">
<s:if test="type==0">
<%@ include file="templates/guest-header.jsp"%>
</s:if>
<s:else>
<%@ include file="templates/logged-header.jsp"%>
</s:else>
</div>
<dl id="browse">
<s:if test="type==1 || type==2">
<%@ include file="templates/logged-acct.jsp"%>
</s:if>
<dt>NAVIGATE WEBSITE</dt>
<s:if test="type==0">
<%@ include file="templates/guest-nav.jsp"%>
</s:if>
<s:elseif test="type==1">
<%@ include file="templates/admin-nav.jsp"%>
</s:elseif>
<s:elseif test="type==2">
<%@ include file="templates/user-nav.jsp"%>
</s:elseif>
<dt>SEARCH MOVIE</dt>
<dd class="searchform">
<%@ include file="templates/search-box.jsp"%>
</dd>
</dl>
<div id="body">
<div class="inner">
<%@ include file="templates/content.jsp"%>
</div>
<!-- end .inner -->
</div>
<!-- end body -->
<div class="clear"></div>
<%@ include file="templates/copyright.jsp"%>
</div>
<!-- end inner -->
</div>
<!-- end wrapper -->
<%@ include file="templates/footer.jsp"%>
</body>
</html>
public类UserAction扩展ActionSupport实现SessionAware{
私有静态最终长serialVersionUID=1L;
私人Map会议;
私有字符串用户标识;
私有字符串用户密码;
私人字符串用户电子邮件;
私有int用户类型;
私人日期登记日期;
@凌驾
公共字符串execute(){
UserManager um=newusermanager();
String registeredPassword=um.getCurrentUserDetail(“用户密码”,
getUserId());
if(getUserPassword().equals(registeredPassword)){
字符串currentUserId=um.getCurrentUserDetail(“用户id”,userId);
int currentUserType=um.getCurrentUserType(userId);
put(“currentUserId”,(字符串)currentUserId);
put(“currentUserType”,(整数)currentUserType);
System.out.println(“您已成功登录!”);
回归成功;
}
System.out.println(“您的登录失败!”);
返回误差;
}
@凌驾
公共无效设置会话(映射会话){
this.session=会话;
}
//接球手和接球手
}
index.jsp:
public class UserAction extends ActionSupport implements SessionAware {
private static final long serialVersionUID = 1L;
private Map<String, Object> session;
private String userId;
private String userPassword;
private String userEmail;
private int userType;
private Date registeredDate;
@Override
public String execute() {
UserManager um = new UserManager();
String registeredPassword = um.getCurrentUserDetail("user_password",
getUserId());
if (getUserPassword().equals(registeredPassword)) {
String currentUserId = um.getCurrentUserDetail("user_id", userId);
int currentUserType = um.getCurrentUserType(userId);
session.put("currentUserId", (String) currentUserId);
session.put("currentUserType", (Integer) currentUserType);
System.out.println("You have successfully logged in!");
return SUCCESS;
}
System.out.println("Your login has failed!");
return ERROR;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
// getters and setters
}
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page import="com.mypackage.model.UserAction"%>
<html>
<head>
<title>My Site - Home</title>
<%@ include file="css/style.css"%>
<%@ include file="css/style2.css"%>
<s:set var="type" value="0" />
<s:if test='#session.containsKey("currentUserType")'>
<s:set var="type" value='#session["currentUserType"]' />
</s:if>
</head>
<body>
<div id="wrapper">
<div id="inner">
<div id="header">
<s:if test="type==0">
<%@ include file="templates/guest-header.jsp"%>
</s:if>
<s:else>
<%@ include file="templates/logged-header.jsp"%>
</s:else>
</div>
<dl id="browse">
<s:if test="type==1 || type==2">
<%@ include file="templates/logged-acct.jsp"%>
</s:if>
<dt>NAVIGATE WEBSITE</dt>
<s:if test="type==0">
<%@ include file="templates/guest-nav.jsp"%>
</s:if>
<s:elseif test="type==1">
<%@ include file="templates/admin-nav.jsp"%>
</s:elseif>
<s:elseif test="type==2">
<%@ include file="templates/user-nav.jsp"%>
</s:elseif>
<dt>SEARCH MOVIE</dt>
<dd class="searchform">
<%@ include file="templates/search-box.jsp"%>
</dd>
</dl>
<div id="body">
<div class="inner">
<%@ include file="templates/content.jsp"%>
</div>
<!-- end .inner -->
</div>
<!-- end body -->
<div class="clear"></div>
<%@ include file="templates/copyright.jsp"%>
</div>
<!-- end inner -->
</div>
<!-- end wrapper -->
<%@ include file="templates/footer.jsp"%>
</body>
</html>
我的网站-主页
浏览网站
搜索电影
但是,它似乎没有输入任何if条件。至少,我认为应该显示guest
视图,因为type
最初由
设置为0
(请原谅目前的设计,我已经意识到使用
而不是
是一种优雅的方法,但我只是开始使用Struts 2。我经常在我使其工作后进行改进/优化。)您在测试中忘记了磅号
应该是这样的
<s:if test="#type==0">
<%@ include file="templates/guest-header.jsp"%>
</s:if>
<s:else>
<%@ include file="templates/logged-header.jsp"%>
</s:else>
关于如何访问struts中的变量谢谢,我一直在想这些符号是什么意思。成功了。标记为被接受的答案。