protlet 程序编写

1.前端采用jsp 三种写法

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@page contentType="text/html; charset=UTF-8" %>//中文编码
<portlet:defineObjects />
<portlet:actionURL var="saveURl" name="save"/> // name对应方法名 var 起的的别名

<form action="<%=saveURl%>" method="post">   //提交的路径
 姓名:<input name="isbn" type="text"><br>
 密码:<input name="bookName" type="text"><br>
 <input type="submit" value="提交">
</form>
<form action='<portlet:actionURL name="save"/>' method="post">
 ISBN:<input name="isbn" type="text"><br>
 图书名称:<input name="bookName" type="text"><br>
 <input type="submit" value="提交">
</form>
<form action="${saveURl}" method="post">
 ISBN:<input name="isbn" type="text"><br>
 图书名称:<input name="bookName" type="text"><br>
 <input type="submit" value="提交">
</form>

2.后台 java代码 两种方法

import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
public class Book extends MVCPortlet {
 public void save(ActionRequest request,ActionResponse response) {
	String isbn= ParamUtil.getString(request, "isbn","abc");  //工具类 也可采用servlet的传值方式,优点是有默认值
	String bookName= ParamUtil.getString(request, "bookName","cd");
	System.out.println(isbn);
	System.err.println(bookName);
	
}

}

也可以 String parameter = request.getParameter("isbn");

public class Book extends MVCPortlet {

 @ProcessAction(name="save") //当name不一样时 可以采用注解方式
 public void savemethod(ActionRequest request,ActionResponse response) {
	String isbn= ParamUtil.getString(request, "isbn","abc");
	String bookName= ParamUtil.getString(request, "bookName","cd");
	System.out.println(isbn);
	System.err.println(bookName);
	
}
}
注意:

我们会发现这两种方式取到的值都是空的,而同样的代码在6.2之前的版本里面是没有问题,原因是从Liferay 6.2开始,默认情况下Liferay要求必须添加Namespace才行,解决方法有两个:

1、设置namespace为非必须。

打开Portlet插件工程中的liferay-portlet.xml,在相应的Portlet里面添加如下代码:

<requires-namespaced-parameters>false</requires-namespaced-parameters>


2、为我们的表单添加上namespace。

<form action="${saveURl}" method="post">
 ISBN:<input name="<portlet:namespace/>isbn" type="text"><br>
 
 图书名称:<input name="<portlet:namespace/>bookName" type="text"><br>
 <input type="submit" value="提交">
</form>
3.使用AUI标签

如果即不想改liferay-portlet.xml,也不想自己添加namespace,则可以使用AUI的form标签。

<aui:input label="User Name" name="userName">

使用AUI标签的时候,他其实是会自动的添加上namespace,本质上和上面手动的添加namespace是一样的

备注:当protlet:renderURL 引用时 后台执行的方法是doview (当页面开始加载时)

<form action="${difine}" method="post">
 ISBN:<input name="<portlet:namespace/>isbn" type="text"><br>
 
 图书名称:<input name="<portlet:namespace/>bookName" type="text" value="${isbn}"/><br>  //可以设置默认提示符

 <input type="submit" value="提交">

 @Override
    public void doView(RenderRequest renderRequest,
            RenderResponse renderResponse) throws IOException, PortletException {
     String isbn= ParamUtil.getString(renderRequest, "isbn","agb");
     System.out.println(isbn);
     renderRequest.setAttribute("isbn","请输入书名");
        super.doView(renderRequest, renderResponse);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

javafanwk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值