在v6.2开始后,需要设置<requires-namespaced-parameters>false</requires-namespaced-parameters>  来避免在jsp中写<portlet:namespace/>的input前缀

在v7.0发现,注解方式是不灵的!

即  "javax.portlet.requires-namespaced-parameters=false", 无效果, 真是汗...

但我们是有办法在7.0中解决的,直接上代码

jsp:

<%@page import="com.liferay.portal.kernel.portlet.LiferayPortletMode"%>
<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%>
<%@ include file="/init.jsp" %> <p>
<b><liferay-ui:message key="com_lifiti_parts_ComLifitiPartsmvcportlet.caption"/></b>
</p> <liferay-portlet:renderURL var="openPortletURL" copyCurrentRenderParameters="true" portletMode="<%=LiferayPortletMode.VIEW.toString() %>"
windowState="<%=LiferayWindowState.NORMAL.toString()%>">
<liferay-portlet:param name="param" value="参数的值"/>
</liferay-portlet:renderURL>
<c:set var="submit"><liferay-ui:message key="com_lifiti_parts_ComLifitiPartsmvcportlet.submit"/></c:set>
<a href="${openPortletURL}">Render Url created</a> <portlet:actionURL var="sendURL" name="send">
</portlet:actionURL> <form action="${sendURL}" method="post" name="fm">
<aui:input name="name" label="Name" id="name"/>
<input type="text" id="age" name="age" />
<input type="text" name="<portlet:namespace/>phone" />
<input type="submit" value="${submit}"></input>
</form>

portlet java

package com.lifiti.portlet;

import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;
import com.liferay.portal.kernel.util.ParamUtil; import java.io.IOException; import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.ProcessAction;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse; import org.osgi.service.component.annotations.Component; @Component(
immediate = true,
property = {
"com.liferay.portlet.display-category=category.sample",
"com.liferay.portlet.instanceable=true",
"javax.portlet.requires-namespaced-parameters=false",没效果!
"javax.portlet.display-name=com.lifiti.parts Portlet",
"javax.portlet.init-param.template-path=/",
"javax.portlet.init-param.view-template=/view.jsp",
"javax.portlet.resource-bundle=content.Language",
"javax.portlet.security-role-ref=power-user,user"
},
service = Portlet.class
)
public class FirstPortlet extends MVCPortlet {
private static final Log _log = LogFactoryUtil.getLog(FirstPortlet.class.getName()); @Override
public void render(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
_log.info(" This is render method of RenderURLByLiferayTagPortlet"); String data = request.getParameter("param");
String data1= ParamUtil.getString(request, "param","");
System.out.println("parameter with request.getParameter is =>"+data);
System.out.println("parameter with ParamUtil.getString is =>"+data1); super.render(request, response);
} @ProcessAction(name="send")
public void ReceiveData(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {
String name = ParamUtil.getString(actionRequest, "name");
String age = ParamUtil.getString(actionRequest, "age");
String phone = ParamUtil.getString(actionRequest, "phone");
_log.info(" 开始接收数据");
System.out.println("FirstPortlet.java name = " + name);
System.out.println("FirstPortlet.java age = " + age);
System.out.println("FirstPortlet.java phone = " + phone);
}
}

界面:

运行的结果:

name = 王昕

age =

phone = 123

我们发现age是空的,看来说明如果用input元素,那还得写<portlet:namespace/> ,要么就用AUI,应该问题会比较少

Liferay7 BPM门户开发之39: Form表单提交的ProcessAction处理的更多相关文章

  1. Liferay7 BPM门户开发之40: Form表单的Action到Render的数据传递

    在Form提交后的变量,很多情况是要展现在jsp页面中,这时Action到Render的变量传递就非常有用. 例如,您在数据库中添加了学生的详细信息. 为了实现这一需求,先创建Form表单(学生的细节 ...

  2. Liferay7 BPM门户开发之9: 流程表单数据动态映射体系

    设计目的: 每个流程表单涉及不同的表单变量.比如请假流程有3个任务节点,分别是 Task1:开始流程,填写请假人.请假原因.请假开始时间.请假结束时间: Task2:上级审批,填写是否同意,审批意见: ...

  3. Liferay7 BPM门户开发之10: 通用流程实现从Servlet到Portlet(Part1)

    开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门 ...

  4. Liferay7 BPM门户开发之17: Portlet 生命周期

    Portlet 生命周期 init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy() ...

  5. Liferay7 BPM门户开发之37: Liferay7下的OSGi Hook集成开发

    hook开发是Liferay客制扩展的一种方式,比插件灵活,即可以扩展liferay门户,也能对原有特性进行更改,Liferay有许多内置的服务,比如用hook甚至可以覆盖Liferay服务. 可作为 ...

  6. Liferay7 BPM门户开发之11: Activiti工作流程开发的一些统一规则和实现原理(完整版)

    注意:以下规则是我为了规范流程的处理过程,不是Activiti公司的官方规定. 1.流程启动需要设置启动者,在Demo程序中,“启动者变量”名统一设置为initUserId 启动时要做的: ident ...

  7. Liferay7 BPM门户开发之15: Liferay开发体系简介

    Liferay SDK 开发体系 主要分6种: Portlet Hook Theme Layout Templates Web Modules Ext Portlet :类似于servlet的web组 ...

  8. Liferay7 BPM门户开发之2: BPMN 2.0 规范入门 (Activiti BPMN extensions)

    Liferay最大的问题是BPM弱,如果做企业开发,BPM必不可少,所以直入主题,做个BPMN2入门. 本文参考地址:http://activiti.org/userguide/index.html# ...

  9. Liferay7 BPM门户开发之23: 了解内置工作流(Kaleo Workflow)

    Liferay内置的工作流是企业版的功能,虽然简单粗糙,但依然不支持社区版.既然要用更强大的Activiti来替代它,那就非常有必要学习一下内置工作流的一些思想,以便借鉴. 它的特点: 实体的工作流操 ...

随机推荐

  1. Bootstrap 3 简介

    Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first pr ...

  2. Pointers and Dynamic Allocation of Memory

    METHOD 1: Consider the case where we do not know the number of elements in each row at compile time, ...

  3. Inno setup定制安装界面

    Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我 ...

  4. 更改Xampp-sql的默认密码-配置appche运行环境

    用php编写的web应用程序,需运行在php的web容器中,其中apache server是一个针对php web容器,它是apache下的开源项目.通常要运行一个web程序,我们还需要安装数据库软件 ...

  5. android 连接蓝牙扫码枪,程序崩溃之onConfigurationChanged

    当android手机通过蓝牙连接扫码枪时,程序崩溃的原因之一是:键盘弹出或隐藏,触发程序走了onDestory->onCreate的生命周期,从而可能使得页面的某些初始化数据被清除了. 解决方法 ...

  6. PeerConnection

    Example(摘) /*When two peers decide they are going to set up a connection to each other, they both go ...

  7. How to Install JAVA 8 (JDK/JRE 8u111) on Debian 8 & 7 via PPA

    Oracle JAVA 8 Stable release has been released on Mar,18 2014 and available to download and install. ...

  8. 纯练手设置ip地址脚本

    #!/bin/bash IFO() { read -p "Configure $line Network card ( 'yes'or'no' )?" CDN </dev/t ...

  9. TJ/T808 终端通讯协议设计与实现(码农本色)

    由于公司项目涉及到相关技术,对于平常写WEB的技术人员来说对这人来说比较默生:为了让下面的技术人员更好地对这个协议的实施,所以单独针对这个协议进行了分析和设计,以更于后期更好指导相关开发工作.由于自己 ...

  10. 初中级Javascript程序员必修学习目录

    很多人总感觉javascript无法入门,笔者在这里写一下自己的学习过程,以及个人认为的最佳看书过程,只要各位能按照本人所说步骤走下去,不用很长时间,坚持个3个月,你的js层级会提高一个档次,无他,唯 ...