知识的价值不在于占有,而在于使用。这篇文章主要讲述liferay6关于liferay中使用requestMapping映射地址提交表单相关的知识,希望能为你提供帮助。
1、接着上一篇博客,从新在定义一下页面
< %@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8"%> < %@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%> < %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> < meta http-equiv="expires" content="0"> < meta http-equiv="pragma" content="no-cache"> < meta http-equiv="cache-control" content="no-cache"> < portlet:defineObjects /> < !-- 获取根目录 --> < !-- 这个是用来定义一个参数 --> < c:set var="basepath" value="https://www.songbingjia.com/android/${pageContext.request.contextPath }" /> 这个spring portlet 的message为 ${message }< form action="${basepath }/samplecontroller/testac" name="< portlet:namespace /> fm" id="< portlet:namespace /> fm" method="post"> < ul> < li> < input type="text" id="firstParams" /> < /li> < li> < input type="submit" value="https://www.songbingjia.com/android/直接提交" /> < /li> < /ul> < /form>
2、修改spring配置文件
< ?xml version="1.0" encoding="UTF-8" standalone="no"?> < beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> < context:component-scan base-package="com.xiaof.springportlet.*"> < /context:component-scan> < bean id="sampleController" class="com.xiaof.springportlet.controller.SampleController"> < !-- 这里可以配置的属性有4个,原谅我的英语不好,基本都是百度翻译, requireSession: 标识这个控制器是否需要一个session来工作,这个功能适用所有controller, 当前controller使用的不是当前控制器的session的时候,抛出SessionRequiredException synchronizeSession(synchronizeOnSession 4.3版本):如果需要controller在用户回话上保持同步指定这个,如果指定此变量扩展控制器覆盖handlerenderrequestinternal(..) 和handleactionrequestinternal(..)方法,并将同步用户的会话。 注意实际应该是:synchronizeOnSession而不是synchronizeSession renderWhenMinimized:如果您希望控制器在portlet处于最小化状态时实际呈现视图,请将其设置为true。默认情况下, 此设置为false,portlet,在最小化状态,不显示任何内容。 cacheSeconds:当您想要控制器重写portlet定义的默认缓存过期时,在这里指定一个正整数。 默认情况下,它被设置为- 1,不会改变默认缓存。将其设置为0将确保结果永远不会缓存。最后除了最后一个参数是给整数,其余参数都是Boolean类型 --> < property name="cacheSeconds" value="https://www.songbingjia.com/android/120" /> < /bean> < bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> < property name="viewClass" value="https://www.songbingjia.com/android/org.springframework.web.servlet.view.JstlView" /> < property name="prefix" value="https://www.songbingjia.com/WEB-INF/jsp/" /> < property name="suffix" value="https://www.songbingjia.com/android/.jsp" /> < /bean> < /beans>
3、修改controller类
package com.xiaof.springportlet.controller; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.portlet.ModelAndView; import org.springframework.web.portlet.bind.annotation.ActionMapping; import org.springframework.web.portlet.bind.annotation.RenderMapping; import org.springframework.web.portlet.mvc.AbstractController; /** * 测试spring-portlet功能 * @author xiaof * * 所有spring portlet的控制器都继承于AbstractController * 这里requestmapping模式必须为view模式,对应portlet中的portlet-mode */ @RequestMapping("view") @Controller(value="https://www.songbingjia.com/samplecontroller") public class SampleController extends AbstractController {/** * 注意这里使用的是@RenderMapping,可以不用 * 因为这里是handleRenderRequestInternal方法,默认会被执行 */ //@RenderMapping public ModelAndView handleRenderRequestInternal(RenderRequest request, RenderResponse response) throws Exception {System.out.println("test spring portlet!!!"); ModelAndView mav = new ModelAndView("springmvc-sample/view"); mav.addObject("message", "< /br> hello world spring portlet!"); return mav; }@Override public void handleActionRequest(ActionRequest request, ActionResponse response) throws Exception { // TODO Auto-generated method stub super.handleActionRequest(request, response); }@RenderMapping(value="https://www.songbingjia.com/testren", params="myaction=testrender") public String testRequestMapping(RenderRequest request, RenderResponse response) { System.out.println("这里进入spring自定义render方法"); return "test rendermapping"; }@ActionMapping(value="https://www.songbingjia.com/testac", params="myaction=testaction") public String testActionMapping(ActionRequest request, ActionResponse response) { System.out.println("这里进入spring自定义action方法"); return "test actionmapping"; }}
【liferay6关于liferay中使用requestMapping映射地址提交表单】
推荐阅读
- 小学四则运算口算练习app---No.6
- .Net程序猿玩转Android开发---线性布局LinearLayout
- apple-touch-icon-precomposed
- JAVA android 获取assets文件夹中的properties文件 并从中获取数据
- Appium禁止appium setting和unlock在设备上重复安装
- 钢铁蚂蚁(Iron Ant)游戏下载 | 手机游戏免费下载 | 安卓版免费下载 | Android版本免费下载 - 角色扮演 动作 休闲
- Android获取系统时间yyyyMMddHHmmssSSS
- 使用 Appium 测试微信小程序 Webview
- 勇闯天塔 (TOTEM) 游戏下载 | 手机游戏免费下载 | 安卓版免费下载 | Android版本免费下载 - 解谜游戏 闯关游戏 冒险游戏