【liferay】6、关于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="${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="直接提交" /></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/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/contexthttp://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的时候,抛出SessionRequiredExceptionsynchronizeSession(synchronizeOnSession 4.3版本):如果需要controller在用户回话上保持同步指定这个,如果指定此变量扩展控制器覆盖handlerenderrequestinternal(..)和handleactionrequestinternal(..)方法,并将同步用户的会话。注意实际应该是:synchronizeOnSession而不是synchronizeSessionrenderWhenMinimized:如果您希望控制器在portlet处于最小化状态时实际呈现视图,请将其设置为true。默认情况下,此设置为false,portlet,在最小化状态,不显示任何内容。cacheSeconds:当您想要控制器重写portlet定义的默认缓存过期时,在这里指定一个正整数。默认情况下,它被设置为- 1,不会改变默认缓存。将其设置为0将确保结果永远不会缓存。最后除了最后一个参数是给整数,其余参数都是Boolean类型--><property name="cacheSeconds" value="120" /></bean><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".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="/samplecontroller")
public class SampleController extends AbstractController {/*** 注意这里使用的是@RenderMapping,可以不用* 因为这里是handleRenderRequestInternal方法,默认会被执行*/
//    @RenderMappingpublic 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;}@Overridepublic void handleActionRequest(ActionRequest request,ActionResponse response) throws Exception {// TODO Auto-generated method stubsuper.handleActionRequest(request, response);}@RenderMapping(value="/testren", params="myaction=testrender")public String testRequestMapping(RenderRequest request,RenderResponse response) {System.out.println("这里进入spring自定义render方法");return "test rendermapping";}@ActionMapping(value="/testac", params="myaction=testaction")public String testActionMapping(ActionRequest request,ActionResponse response) {System.out.println("这里进入spring自定义action方法");return "test actionmapping";}}

 

转载于:https://www.cnblogs.com/cutter-point/p/8254054.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dump java崩溃自动 不生成_基于Excel和Java自动化工作流程:发票生成器示例

对于销售人员&#xff0c;使用Excel创建发票是很常见的。但是该过程通常涉及许多容易出错的手动操作&#xff0c;例如输入数据&#xff0c;复制/粘贴等。如何实现一个可以将数据从数据库自动填充到发票Excel模板中&#xff0c;而无需再辛苦手动输入&#xff0c;从繁重的手动录入…

go将服务器图片响应给客户端,Go中来自客户端和服务器的RPC

我目前正在使用thrift(thrift4go)来实现服务器->客户端和客户端->服务器RPC功能。默认情况下&#xff0c;thrift仅像net / rpc一样执行客户端->服务器调用。由于还需要服务器与客户机之间的通信&#xff0c;因此我进行了一些研究&#xff0c;发现bidi-thrift。Bidi-th…

hdu 3887 Counting Offspring

题目连接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3887 题意&#xff1a;给出一棵树&#xff0c;对于每一个节点&#xff0c;问他的子孙节点中有多少个节点小于该节点。 思路&#xff1a;首先找出这棵树的DFS序列&#xff0c;每一个节点出现在两个位置&#xff…

搭建vue开发环境的步骤

搭建vue开发环境的步骤 相信很多人在刚开始学习vue这个框架的时候&#xff0c;在最开始搭建开发环境的时候&#xff0c;都会遇到一些大大小小的坑&#xff0c;我之前在学习angular的时候搭建过一次&#xff0c;过了一个月后在搭建第二次的时候&#xff0c;竟然有一些混乱&#…

ccxprocess可以禁用么_提效 | 5G时代网站还需要加速么?

看到标题, 你一定会说都已经 5G 时代了, 还要在网络提速上下功夫么? 答案是: 是的. 如果你是做国际或者全球业务的, 会更有体会, 很多国家和地区的网络是非常差的, 说他们停留在 2G 时代也不过分的.即使是国内良好的网络环境下, 做好网络提速, 也是可以提高用户体验以及缓解服…

springboot ---- sts如何启动两个实例

idea 实现启动两个spring boot工程实例的方法 可以参考这篇博客。 因为使用spring tool suite 学习spring cloud 需要实例化两个spring boot 工程来构成一个小小的集群系统&#xff0c; 可以通过sts ,右击选择run as, 使用run configuration..., 配置jvm参数为 -Dserver.portxx…

java trie实现

http://www.riaos.com/ria/5814

如何利用python在一个wen'dang'li_如何利用Python网络爬虫给自己跟朋友来一份穷游攻略!走到哪里穷到哪里的哦!...

【一、项目背景】穷游网提供原创实用的出境游旅行指南、攻略&#xff0c;旅行社区和问答交流平台&#xff0c;以及智能的旅行规划解决方案&#xff0c;同时提供签证、保险、机票、酒店预订、租车等在线增值服务。穷游“鼓励和帮助中国旅行者以自己的视角和方式体验世界”。今天…

ubuntu下命令安装与卸载软件方法

2019独角兽企业重金招聘Python工程师标准>>> 刚 刚接触ubuntu就开始一直在安装语言包、升级、常用软件和其它相关依赖等等东西&#xff0c;总的来说&#xff0c;是一个劲儿的装&#xff0c;缺全然不知怎么卸载&#xff0c;现在把安装和卸载写 在一块&#xff0c;一旦…

为什么用线程池

1、创建/销毁线程伴随着系统开销&#xff0c;过于频繁的创建/销毁线程&#xff0c;会很大程度上影响处理效率 2、线程并发数量过多&#xff0c;抢占系统资源从而导致阻塞 3、对线程进行一些简单的管理 延时执行、定时循环执行的策略等 https://www.cnblogs.com/dongguacai/p/60…

delphi7存取配置文件与sqlserver数据库连接_Delphi7存取配置文件与SQLServer数据库连接...

时间:2012-06-28 18:57来源:未知 整理:寂涯网络 点击:2975次引言Delphi7 具有强大的数据库应用程序开发功能 在使用Delphi7 开发 房产管理系统 时&#xff0c;后台数据库采用 SQLServer 数据库管理系统 使用 TADOConnection 组件与数据库建立连接&#xff0c;需要指定 TADOConn…

C 语言和C++语言的 struct对比

C 语言和C语言的 struct对比 author: stonehat 1. C语言将struct当成类来处理的&#xff0c;所以C的struct可以包含C类的所有东西&#xff0c;例如构造函数&#xff0c;析构函数&#xff0c;友元等&#xff0c;C的struct和C类唯一不同就是 struct成员默认的是public&#xff0c…

UOJ.117.欧拉回路

题目链接 这数据。。简直了 有自环和重边&#xff0c;有些点可能没有连边(并查集不好使 就DFS吧) 因为重边自环可能非常多&#xff0c;同一个点可能经过n次&#xff0c;所以必须要重置表头H[x](类似当前弧优化) 另外是找欧拉回路不是欧拉路径&#xff0c;判断不要错 无向图: 所…

c++ linux 线程等待与唤醒_C++并发编程 等待与唤醒

C并发编程 等待与唤醒条件变量条件变量, 包括(std::condition_variable 和 std::condition_variable_any)定义在 condition_variable 头文件中, 它们都需要与互斥量(作为同步工具)一起才能工作.std::condition_variable 允许阻塞一个线程, 直到条件达成.成员函数void wait(std:…

iOS 动画基础总结篇

iOS 动画基础总结篇 动画的大体分类(个人总结可能有误) 分类.png UIView 动画 属性动画 12345678910111213141516171819[UIView beginAnimations:nil context:nil];[UIView setAnimationDelay:1];[UIView setAnimationDuration:2];[UIView setAnimationRepeatCount:100];[UIVie…

最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用41

入局在北京初冬寒风的吹拂下&#xff0c;吴言渐渐清醒了起来&#xff0c;他现在需要做的是赶紧想办法应付下周赵海波要召开的会议&#xff0c;而不是无谓的生气。吴言走在冬日的街头&#xff0c;一边走一边想。下周的事情还真不少&#xff0c;第一件事是赵海波要召开的公司改组…

bootstraptable获得所有行_郎酒领衔,2020“川酒全国行”首站香满花城

12月8日&#xff0c;2020“川酒全国行”首站在广州开启。以“川酒金花醉美珠江”为主题&#xff0c;本次活动由四川省经济和信息化厅指导&#xff0c;四川中国白酒金三角酒业协会主办&#xff0c;四川郎酒股份有限公司承办&#xff0c;五粮液、泸州老窖、剑南春、舍得、水井坊协…

判断DataRow中某列是否为空的方法

DataRow drdt.Rows[0]; if(!dr.IsNull("列名")) { //不为空的操作 }转载于:https://www.cnblogs.com/12go/archive/2011/10/09/2203606.html

centos7根据端口查进程_记录一次CentOs7下Nginx+WSGI部署Django项目(超详细)

记录一次Django部署的文章&#xff0c;不是很熟悉Linux系统&#xff0c;踩了不少坑&#xff0c;本篇文章相当于是一个总结&#xff0c;我会在本文中详细介绍&#xff0c;部署单个Django项目和多个Django的方法&#xff0c;如读者有更好的方法&#xff0c;欢迎留言一起探讨~长话…

淘宝跨域获取Cookie分析

最近在发现使用Taobao的时候的一个小细节&#xff0c;于是便萌发起了写这篇文章。 当我们在 www.taobao.com 中进行登录之后&#xff0c;然后直接切换到 www.tmall.com 域名下&#xff0c;发现www.tmall.com首页的最顶部马上显示成了&#xff1a; 您好, andyfaces。 首先&#…