我正在使用 Liferay 6.1 版本。
用户进入http:localhost
后,我将显示名为“/ravi”的网页,其中包含我的自定义门户,如图所示
我已经在 portal-ext.properties 下配置了以下属性,如图所示
auth.forward.by.last.path=true
default.landing.page.path=/web/guest/ravi
请查看用户输入 http:localhost 时显示的我的自定义 Portlet 的屏幕截图
现在我的要求是,如果他输入有效的 crendentails ,我需要显示另一个页面(“/web/guest/test”)。
在我的 processAction 类中,我正在这样做
public class ValidateUser extends MVCPortlet {
public void processAction(ActionRequest request, ActionResponse response) {
String userName = (String) request.getParameter("userName");
String password = (String) request.getParameter("password");
try {
// Contatcs DB and validates the credentials here
// Please let me know how can i show the Configured Page if his credentials are valid ??
}
catch (Exception e) {
}
}
}
编辑部分
非常感谢您对默认 login.events.post 的回答。
我是 Liferay 的新手,所以我可能在这里做错了,所以如果我做错了什么,请帮助我。
我按照以下步骤操作:
- 创建了一个名为“MyLogon”的新 Portlet,并在其 view.jsp 中创建了一个带有两个文本字段(登录和密码)和一个提交按钮的表单。单击该提交按钮时,我实际上是在调用我的 processAction 方法并进行数据库调用以验证来自 mysql db 的用户。
2.然后我在 /web/guest/ravi 中创建了一个页面,并将这个“MyLogon”Portlet 添加到这个新页面 /web/guest/ravi
然后在下面的属性下配置这个
portal-ext.properties
auth.forward.by.last.path=true default.landing.page.path=/web/guest/ravi
这就是我所做的。
并且在进入时http:localhost:8080
,它显示了taht页面。
如果我做错了什么,请告诉我
编辑第二部分
我已经理解了你回答的一部分,我有这些问题。能否请你帮忙
我需要根据我的 DataBase 中存在的数据来验证用户,所以为此我需要执行以下操作。
我需要创建一个 Hook 来覆盖这个属性
login.events.pre=com.LoginAction
公共类 LoginAction 扩展 Action {
public void run(HttpServletRequest req, HttpServletResponse res) {
// 这里我需要调用数据库来验证用户凭据,然后将他重定向到我想要的页面??
}
}