如何使用 requestScope 将值从 jsp 传递到 portlet
How to use requestScope to pass value from jsp to portlet
我正在尝试将 jsp 中的一些值发送到 portlet class.I 我正在使用 jstl 来实现,我的要求是使用 requestScope 来传递 [=23= 中的值] 我已经看到,当我使用 requestScope 在 portlet 中创建 URL 时它工作正常,但是在值传递的情况下它不起作用,我正在发布我到目前为止所做的代码
<fmt:setBundle basename="Language-ext"/>
<form action="<c:out value='${requestScope.registerUserActionUrl}'/>" method="POST">
<table width="200px">
<tr>
<td colspan="2">
<font color="#FF0000"><c:out
value="${requestScope.errorMsg}"/></font>
</td>
</tr>
<tr>
<td><fmt:message key="label.firstName"/></td>
<td><input type="text" name="firstName" value="${requestScope.User.firstName}"></input></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><fmt:message key="label.lastName"/></td>
<td><input type="text" name="lastName" value="${requestScope.User.lastName}"></input></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><font color="#FF0000"><b>*</b></font> <fmt:message key="label.email"/></td>
<td><input type="text" name="email" value="${requestScope.User.email}"></input> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit"/>
<a href="<c:out value='${requestScope.resetRenderUrl}'/>">
<b><fmt:message key="label.reset"/></b>
</a>
</td>
</tr>
这是我的豆子class
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5729328658617182010L;
private String firstName;
private String lastName;
private String email;
public User(String firstName,String lastName,String email){
super();
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
这是我捕获值的 portlet
@ProcessAction(name = "registerUserAction")
public void registerUser(ActionRequest request, ActionResponse response)
throws PortletException, IOException {
String email = request.getParameter("email");
System.out.println("Email :"+email +","+request.getParameter("firstName"));
// --set the information entered by the user on the registration
但是我的 email 和 firstName 都为空。请有人帮忙
与 Liferay 6.2 相关的答案
默认情况下,Liferay 6.2 要求给定 portlet 的请求参数以 portlet 命名空间为前缀。在普通 HTML 中,您需要使用 <portlet:namespace/>
标记明确指定每个请求参数/表单字段的命名空间:
<input type="text" name="<portlet:namespace/>firstName" value="${requestScope.User.firstName}">
不要忘记所需的 TLD 导入:
<%@taglib prefix="portlet" uri="http://java.sun.com/portlet" %>
只有命名空间参数对 portlet 可见(通过标准 portlet API)。
我正在尝试将 jsp 中的一些值发送到 portlet class.I 我正在使用 jstl 来实现,我的要求是使用 requestScope 来传递 [=23= 中的值] 我已经看到,当我使用 requestScope 在 portlet 中创建 URL 时它工作正常,但是在值传递的情况下它不起作用,我正在发布我到目前为止所做的代码
<fmt:setBundle basename="Language-ext"/>
<form action="<c:out value='${requestScope.registerUserActionUrl}'/>" method="POST">
<table width="200px">
<tr>
<td colspan="2">
<font color="#FF0000"><c:out
value="${requestScope.errorMsg}"/></font>
</td>
</tr>
<tr>
<td><fmt:message key="label.firstName"/></td>
<td><input type="text" name="firstName" value="${requestScope.User.firstName}"></input></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><fmt:message key="label.lastName"/></td>
<td><input type="text" name="lastName" value="${requestScope.User.lastName}"></input></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><font color="#FF0000"><b>*</b></font> <fmt:message key="label.email"/></td>
<td><input type="text" name="email" value="${requestScope.User.email}"></input> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit"/>
<a href="<c:out value='${requestScope.resetRenderUrl}'/>">
<b><fmt:message key="label.reset"/></b>
</a>
</td>
</tr>
这是我的豆子class
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = -5729328658617182010L;
private String firstName;
private String lastName;
private String email;
public User(String firstName,String lastName,String email){
super();
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
这是我捕获值的 portlet
@ProcessAction(name = "registerUserAction")
public void registerUser(ActionRequest request, ActionResponse response)
throws PortletException, IOException {
String email = request.getParameter("email");
System.out.println("Email :"+email +","+request.getParameter("firstName"));
// --set the information entered by the user on the registration
但是我的 email 和 firstName 都为空。请有人帮忙
与 Liferay 6.2 相关的答案
默认情况下,Liferay 6.2 要求给定 portlet 的请求参数以 portlet 命名空间为前缀。在普通 HTML 中,您需要使用 <portlet:namespace/>
标记明确指定每个请求参数/表单字段的命名空间:
<input type="text" name="<portlet:namespace/>firstName" value="${requestScope.User.firstName}">
不要忘记所需的 TLD 导入:
<%@taglib prefix="portlet" uri="http://java.sun.com/portlet" %>
只有命名空间参数对 portlet 可见(通过标准 portlet API)。