[英]How to direct call xhml page from ManagedBean based on action method return string without faces-config.xml file
@Named
public class LoginBean{
private String username;
private String password;
private String userType;
// setter getter
public String login() {
...
if(isUserValidate()){
if(userType.equals("HR"){
return "HRHOME";
}
if(userType.equals("ADMIN"){
return "ADMINHOME";
}
if(userType.equals("MANAGER"){
return "MANAGERHOME";
}
}
return "FAILURE";
}
}
WebContent\app\common\login.xhtml;
WebContent\app\common\error.xhtml;
WebContent\app\admin\adminHome.xhtml;
WebContent\app\hr\hrHome.xhtml;
....
<!-- Case 0 for login user -->
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>LOGIN</from-outcome>
<to-view-id>/app/common/login.xhtml</to-view-id>
</navigation-case>
<!-- Case 1 if login user is from HR -->
<from-view-id>/app/common/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>HRHOME</from-outcome>
<to-view-id>/app/hr/hrHome.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>ADMINHOME</from-outcome>
<to-view-id>/app/admin/adminHome.xhtml</to-view-id>
</navigation-case>
...
<navigation-case>
<from-outcome>FAILURE</from-outcome>
<to-view-id>/app/common/error.xhtml</to-view-id>
</navigation-case>
正如您在上面的快照代码中看到的那样..
login.xhtml 对所有用户都是通用的,根据登录用户验证结果页面将被决定。 如果用户属于 HR 则 app/hr/hrHome.xhtml 将被重定向 如果用户属于 Admin 然后 app/admin/adminHome.xhtml
需求:我想根据LoginBean class的action方法login()的返回字符串重定向具体结果xhtml页面,而不是使用xml配置文件faces-config.Z0F635D0E0F3874FFF8B581C132E。
如何使用 Primefaces 和 JSF 来做到这一点?
你可以做类似的事情
if (isUserValidate()) {
return "/WebContent\app\hr\hrHome.jsf?faces-redirect=true";
} else if(userType.equals("ADMIN"){ {
return "/WebContent\app\admin\adminHome.jsf?faces-redirect=true";
} else if(.......){
.........
}else{
return "/WebContent\app\admin\error.jsf?faces-redirect=true"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.