1、接着上一篇博客,从新在定义一下页面

  1. <%@ page contentType="text/html; charset=utf-8" language="java"
  2. pageEncoding="utf-8"%>
  3. <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  5.  
  6. <meta http-equiv="expires" content="0">
  7. <meta http-equiv="pragma" content="no-cache">
  8. <meta http-equiv="cache-control" content="no-cache">
  9.  
  10. <portlet:defineObjects />
  11. <!-- 获取根目录 -->
  12. <!-- 这个是用来定义一个参数 -->
  13. <c:set var="basepath" value="${pageContext.request.contextPath }" />
  14.  
  15. 这个spring portlet 的message为
  16. ${message }
  17.  
  18. <form action="${basepath }/samplecontroller/testac" name="<portlet:namespace />fm" id="<portlet:namespace />fm"
  19. method="post">
  20. <ul>
  21. <li>
  22. <input type="text" id="firstParams" />
  23. </li>
  24. <li>
  25. <input type="submit" value="直接提交" />
  26. </li>
  27. </ul>
  28. </form>

2、修改spring配置文件

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-4.3.xsd">
  9.  
  10. <context:component-scan base-package="com.xiaof.springportlet.*"></context:component-scan>
  11.  
  12. <bean id="sampleController" class="com.xiaof.springportlet.controller.SampleController">
  13. <!--
  14. 这里可以配置的属性有4个,原谅我的英语不好,基本都是百度翻译,
  15. requireSession: 标识这个控制器是否需要一个session来工作,这个功能适用所有controller,
  16. 当前controller使用的不是当前控制器的session的时候,抛出SessionRequiredException
  17. synchronizeSession(synchronizeOnSession 4.3版本):如果需要controller在用户回话上保持同步指定这个,如果指定此变量扩展控制器覆盖handlerenderrequestinternal(..)
  18. 和handleactionrequestinternal(..)方法,并将同步用户的会话。
  19. 注意实际应该是:synchronizeOnSession而不是synchronizeSession
  20. renderWhenMinimized:如果您希望控制器在portlet处于最小化状态时实际呈现视图,请将其设置为true。默认情况下,
  21. 此设置为false,portlet,在最小化状态,不显示任何内容。
  22. cacheSeconds:当您想要控制器重写portlet定义的默认缓存过期时,在这里指定一个正整数。
  23. 默认情况下,它被设置为- 1,不会改变默认缓存。将其设置为0将确保结果永远不会缓存。
  24.  
  25. 最后除了最后一个参数是给整数,其余参数都是Boolean类型
  26. -->
  27. <property name="cacheSeconds" value="120" />
  28. </bean>
  29.  
  30. <bean id="viewResolver"
  31. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  32. <property name="viewClass"
  33. value="org.springframework.web.servlet.view.JstlView" />
  34. <property name="prefix" value="/WEB-INF/jsp/" />
  35. <property name="suffix" value=".jsp" />
  36. </bean>
  37.  
  38. </beans>

3、修改controller类

  1. package com.xiaof.springportlet.controller;
  2.  
  3. import javax.portlet.ActionRequest;
  4. import javax.portlet.ActionResponse;
  5. import javax.portlet.RenderRequest;
  6. import javax.portlet.RenderResponse;
  7.  
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.portlet.ModelAndView;
  11. import org.springframework.web.portlet.bind.annotation.ActionMapping;
  12. import org.springframework.web.portlet.bind.annotation.RenderMapping;
  13. import org.springframework.web.portlet.mvc.AbstractController;
  14.  
  15. /**
  16. * 测试spring-portlet功能
  17. * @author xiaof
  18. *
  19. * 所有spring portlet的控制器都继承于AbstractController
  20. * 这里requestmapping模式必须为view模式,对应portlet中的portlet-mode
  21. */
  22. @RequestMapping("view")
  23. @Controller(value="/samplecontroller")
  24. public class SampleController extends AbstractController {
  25.  
  26. /**
  27. * 注意这里使用的是@RenderMapping,可以不用
  28. * 因为这里是handleRenderRequestInternal方法,默认会被执行
  29. */
  30. // @RenderMapping
  31. public ModelAndView handleRenderRequestInternal(RenderRequest request,
  32. RenderResponse response) throws Exception {
  33.  
  34. System.out.println("test spring portlet!!!");
  35. ModelAndView mav = new ModelAndView("springmvc-sample/view");
  36. mav.addObject("message", "</br>hello world spring portlet!");
  37.  
  38. return mav;
  39. }
  40.  
  41. @Override
  42. public void handleActionRequest(ActionRequest request,
  43. ActionResponse response) throws Exception {
  44. // TODO Auto-generated method stub
  45. super.handleActionRequest(request, response);
  46. }
  47.  
  48. @RenderMapping(value="/testren", params="myaction=testrender")
  49. public String testRequestMapping(RenderRequest request,
  50. RenderResponse response) {
  51. System.out.println("这里进入spring自定义render方法");
  52. return "test rendermapping";
  53. }
  54.  
  55. @ActionMapping(value="/testac", params="myaction=testaction")
  56. public String testActionMapping(ActionRequest request,
  57. ActionResponse response) {
  58. System.out.println("这里进入spring自定义action方法");
  59. return "test actionmapping";
  60. }
  61.  
  62. }

【liferay】6、关于liferay中使用requestMapping映射地址提交表单的更多相关文章

  1. jsp中普通按钮如何提交表单

    jsp中普通按钮如何提交表单方法1: <form action = "提交的地址">         <input type="submit" ...

  2. struts2中token防止重复提交表单

    struts2中token防止重复提交表单 >>>>>>>>>>>>>>>>>>>&g ...

  3. iframe中使用模态框提交表单后,iframe加载父页面的解决方法

    在iframe中使用模态框提交表单后,会出现iframe加载整个父页面的问题,如下图: 解决方法: 在form表单中添加target属性 _parent 这个属性会使目标文档载入父窗口或者包含来超链接 ...

  4. lavarel框架中如何使用ajax提交表单

    开门见山,因为laravel以post形式提交数据时候需要加{{csrf_field()}}防止跨站攻击,所以当你用ajax提交表单时候自然也要加 在网上看了很多的解决方式,我是用下面这种方法解决的: ...

  5. KindEditor使用过程中,用JQ提交表单时,获取不到编辑器的内容

    首先要说明的是.在使用提交button直接提交时.编辑器的内容是能够正常获取的,而使用 jq或js ,如$("#form").submit(),提交时,则编辑器的内容是无法获取的. ...

  6. SpringMVC中的异步提交表单

    1.前言 近期在做一个项目,前台框架用的是EasyUI+SpringMVC,因为对SpringMVC不太了解,所以刚開始接触的时候有点吃力,在此通过一个EasyUi中的DataGrid表格来总结一下. ...

  7. 在火狐、360等浏览器中,用jquery创建表单并发送的问题

    某些浏览器无法使用js或者jquery直接创建表单并发送,这是由于这些浏览器在提交页面表单时要求页面有完整的标签项即<html><head><title></ ...

  8. js防止回车(enter)键提交表单及javascript中event.keycode

      如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里 ...

  9. delphi中使用webbrowser提交表单

    转自:http://blog.163.com/hehaifeng1984@126/blog/static/6900113620133504644998/ 我们以百度搜索为例,使用webbrowser组 ...

随机推荐

  1. 证明 U and V={0}时 dim(U+V)=dim(U)+dim(V)

    U And V={0} 证明 dim(U+V)=dim(U)+dim(V)设{u1,u2,...,uk} 是U的基,{v1,v2...,vr}是V的基,dim(U)=k ,dim(V)=r dim(U ...

  2. python:浅拷贝与深拷贝

    1,“相等”与“相同” 我们先赋值三个变量a, b, c: a = [1, 2, [1, 2]] b = [1, 2, [1, 2]] c = a 判断一下‘相等’: a == b  返回 True ...

  3. fPLL结构及动态配置

    输入参考时钟 从上图可以看到参考时钟输入的几种类型.   注意:fPLL的校正是由CLKUSR来驱动的,这个时钟必须要保持稳定. 参考时钟利用器     N计数器 N计数器会把参考时钟利用器输出进行分 ...

  4. 用Kotlin写一个基于Spring Boot的RESTful服务

    Spring太复杂了,配置这个东西简直就是浪费生命.尤其在没有什么并发压力,随便搞一个RESTful服务 让整个业务跑起来先的情况下,更是么有必要纠结在一堆的XML配置上.显然这么想的人是很多的,于是 ...

  5. eclipse/sublime 等宽字体设置

    转载请注明出处:http://www.cnblogs.com/wubdut/p/4621889.html 使用ubuntu14.04会产生很多想日犬的地方.大家一般习惯于使用 eclipse 进行 j ...

  6. java基础-day22

    第11天  多线程 今日内容介绍 u  多线程概述 u  线程实现 u  多线程安全问题产生 & 解决方案 第1章    多线程概述 学习多线程之前,我们先要了解几个关于多线程有关的概念. A ...

  7. java并发编程基础-ReentrantLock及LinkedBlockingQueue源码分析

    ReentrantLock是一个较为常用的锁对象.在上次分析的uil开源项目中也多次被用到,下面谈谈其概念和基本使用. 概念 一个可重入的互斥锁定 Lock,它具有与使用 synchronized 相 ...

  8. docker mac

    官网上有安装方法.已安装成功. 容器千万不能随便删 现在已经不用boot2docker,使用dockertools来安装docker,dockertools中包含docker-machine,等等. ...

  9. [jquery] 遮罩弹窗,点击遮罩弹窗自动隐藏

    $("#id_sign_forbidden_win .c-content").click(function(event){ event.stopPropagation(); // ...

  10. 11.CrawlSpiders

    CrawlSpiders 通过下面的命令可以快速创建 CrawlSpider模板 的代码: .scrapy startproject tencentspider .scrapy genspider - ...