问题标签 [spring-portlet-mvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
741 浏览

java - 将 Spring portlet 迁移到 web mvc

我被分配去重组一个现有的项目。该项目是一个具有两个功能的门户。

  1. 允许用户单点登录以查看来自其他现有 Web 应用程序的简要信息
  2. 通过其他网络应用程序的 API/数据库管理用户

该项目使用Spring Portlet MVC 3eXo 门户容器CAS 单点登录(每个都是独立的 Web 应用程序)。

随着时间的推移,我们发现第一个功能需要关闭。这会留下单点登录,允许用户单击链接并访问其他系统。我们希望使用 Spring MVC 将这个项目转换为普通的 Web 应用程序,以摆脱 eXo 平台的沉重。遇到这种情况的人可以给个建议吗?有没有一种优雅的方式来做到这一点?

0 投票
2 回答
1379 浏览

java - RenderRequest 时的协议重定向

我正在开发一个在 Liferay 门户服务器上使用 Spring Portlet-MVC 框架和 Velocity 的项目。对于一些页面,我们需要在安全连接上为它们提供服务。作为 Portlets 的新手,我想出了链接到 Action-Method 并从那里重定向的解决方案。

我的解决方案有效,但对我来说似乎不太好。我想知道是否有人可以想到另一种更透明的方式来做到这一点(也许在 RenderMappings 上使用拦截器和注释?)。

任何建议将不胜感激!

0 投票
5 回答
5064 浏览

spring-mvc - Spring portlet MVC 3.1 如何确定使用多个控制器呈现哪个带注释的方法?

在使用多个控制器类和 DefaultAnnotationHandlerMapping 时,我们在使用 Spring Portlet MVC 3.1 时遇到了问题。

背景

  • 我们使用 Spring Portlet MVC 3.1 和 Render & Action 阶段的注释
  • 我们正在使用 JBoss EPP 5.1.1

问题

  • 对于带有参数的 Portlet 呈现请求,Portlet 中呈现了不正确的页面

原因

  • Spring Portlet MVC 使用的 @RenderMapping 方法与具有正确注释的预期方法不同

技术分析

  1. 我们所有的控制器都包含@RenderMapping 和@ActionMapping 注释,并且都具有“params”参数,以确保根据我们的portlet URL 中的参数集调用预期的方法。对于默认渲染,我们有一个方法,它有一个没有“params”参数的@RenderMapping 注解,当请求不包含参数时,我们使用它来渲染一个空白的JSP。

  2. 根据对本书第 7 章和第 8 章的阅读,我们了解到 Dispatcher Portlet 尝试为传入请求获取适当的处理程序映射,并将其发送到配置的控制器 bean 中的适当方法。我们的假设是,我们的默认 @RenderMapping 注释(没有参数)只有在它检查控制器中没有其他方法与特定请求参数匹配的注释后才会被调用。

  3. 然而,我们经过调试发现这个假设是不正确的。DefaultAnnotationHandlerMapping 似乎以某种预定义的顺序遍历 Controller bean 中可用的注释列表。这意味着,如果具有默认 @RenderMapping 注释(没有参数)的控制器 bean 出现在列表之前,则将调用具有默认 @RenderMapping 注释(没有参数)的方法,而不是列表下方的正确方法.

显示的错误

我们在 Windows 环境下开发并部署到 Linux 环境。在 Windows 中,我们看到处理程序按字母顺序循环通过控制器 bean,因此我们最初通过在控制器中添加不带参数的 @RenderMapping 注释方法来解决我们的问题,其中 bean 名称最接近“Z”。

然而,在 Linux 中,控制器 bean 的检测顺序似乎有所不同。我附上了下面的 Spring 日志以突出显示该问题。无参数 @RenderMapping 注释在 YourDetailsController 中,正如您在 Windows 日志中看到的那样,它出现在列表的最后,而在 Linux 中则没有。这意味着,如果我们尝试访问出现在列表中 YourDetailsController 之后的控制器之一,我们最终总是会点击 YourDetailsController 中的 no params 注释。

问题

  1. 我们的假设不正确吗?
  2. 我们的诊断是否反映了预期的行为?还是 Spring Portlet MVC 的错误?
  3. 是否有其他方法可以扫描注释以形成处理程序映射 bean 列表?
  4. 使用 xml 配置(而不是注释)会解决我们的问题吗?
  5. 我们能否定义多个处理程序映射和顺序,以便默认处理程序映射是调度程序 portlet 使用的最后一个处理程序映射?

您对此问题的任何想法或建议将不胜感激。

0 投票
2 回答
7250 浏览

spring - @ModelAttribute spring mvc portlet 和 ajax 表单提交

对不起我糟糕的英语。我有很多事情在我的脑海里,从字面上让我感到困惑。我想将表单提交的值作为@ModelAttribute 处理,这首先让我感到困惑。不使用 @ModelAttribute 我很好,并且一切正常。

我的要求是在 portlet 和 spring mvc 3.0 注释中处理 ajax 表单提交

我有的表格

我使用以下 jQuery 将表单作为 ajax 调用提交

我有以下控制器来处理 ajax 调用

我创建了一个 User 类,我想使用 @ModelAttribute 来设置/获取值。我已经通过许多链接试图弄清楚如何使用它。其中一个示例使用了 taglib 格式。我有 jQuery 将表单作为 ajax 调用提交,我不确定是否将表单更改为这种模式,它会破坏我的代码。

谢谢您的帮助!

0 投票
2 回答
2436 浏览

java - 从控制器(Spring Portlet MVC)访问 PortletSession 属性(由拦截器设置)

我是 Spring Portlet MVC 的新手,但最近几天我一直在努力学习。我的问题的上下文如下

  1. 我有一个带有单个控制器的 Spring Portlet MVC portlet。
  2. Portlet 被配置为在用户想要访问资源的任何时候调用 HandlerInterceptor (方法“preHandleRender”)。
  3. 拦截器检查用户是否经过身份验证,如果没有,它会检索用户的 Liferay 凭据以管理许多其他 Web 服务的身份验证(现在不感兴趣)。
  4. 此后,拦截器将用户数据存储在 PortletSession中。

现在,我应该如何从控制器内部通过拦截器检索存储在 PortletSession 中的用户数据?

sessionInterceptor.preHandleRender

视图控制器类

如果需要,我准备提供有关我的代码的更多信息。

0 投票
1 回答
339 浏览

java - 如何在 Spring Portlet MVC 中获取对象类型参数

我正在研究 Spring Portlet MVC。我有一个名为“CLASS”的表。CLASS 表有复合主键。我想在其他表中使用 CLASS 表。我想在组合框中列出 CLASS 表项。

选择组合框时,我必须获取 CLASS 的复合 ID。但我无法获得身份证。因为 id 是 CLASSID 类型。(并且 id 是一个对象)我只从组合框中得到 int,string.. 类型参数。

是否可以从组合框中获取对象?如果回答是,该怎么做?

问候。

classId 是对象。我可以从类数组中获取名称值和其他值。但我无法获得 classId 值。它返回空值。如何在 Spring Portlet MVC 中获取对象类型参数?

0 投票
2 回答
3342 浏览

java - Spring 和 Portlet 标记的 Maven 依赖关系

我在 Netbeans IDE 中遇到以下问题 - 当我创建一个 JSP 文件并将这两个标记库放入其中时

然后我得到错误The absolute uri ... cannot be resolved。所以我想知道问题出在哪里?应用程序在部署到 AS 时工作正常,但我想在开发过程中享受自动完成等功能。我pom.xml看起来像这样 - PasteBin

我想我在类路径上有所有必要的 JAR,那么如何让 NetBeans 识别这些标签?

0 投票
1 回答
1391 浏览

java - Spring MV Porlet ActionMapping 不工作

我在 Spring MVC Portlet 框架中有一个带有控制器的简单登录表单。表格看起来像这样

和控制器

问题是 - 当我提交表单时,我被重定向到/bookShop-1.0/portal/classic/showcase/somePortalGeneratedString错误的页面,因为我的 portlet 在localhost:8080/portal/classic/showcaseURL 上,所以我收到 404 错误。<portlet:renderURL>标签和映射工作正常,但我不能简单地让这个表单工作。

我的环境是:JBoss JPP 6.0(基于 GateIn 3.5)、Spring 3.2.1 和 Portlet 2.0

0 投票
2 回答
941 浏览

java - 页面间重定向 - Spring MVC

我开始了,Spring Portlet MVC但我相信这个问题也适用于Spring MVC. 让我给你看这个例子

然后是注册页面的控制器

问题是,当我从页面调用 showRegisterPage 方法(操作)时,我被重定向到registration.jsp,但是会发生这种异常

这可以通过将ModelAttribute用户放入 LoginController 来解决,但代码重复并不是真正正确的方法,那么我该如何正确解决这个问题?我也尝试将 showRegisterPage 方法移动到 RegistrationController 但链接不起作用。也许有人可以详细说明页面与某个控制器的精确绑定是如何工作的?

PS index.jsp 和registration.jsp 都包含<form:form>标签,我还省略了两个控制器的样板代码。

0 投票
1 回答
913 浏览

spring-webflow-2 - Spring webflow 重定向不适用于 Portlet

我必须实现 portlet 间的通信功能。功能如下:

1) 用户点击“createStep1.jsp”上的“另存为”链接。

2)调用下面提到的webflow saveDraftStep1,草稿保存在数据库中。

3) 用户被导航到另一个 portletmyportlet并在那里显示成功保存的消息。

不知何故,webflow 没有重定向到我在externalRedirect. 它保持在同一页面上。下面是代码:

理想情况下,我想用我的 portlet url 替换 google url,例如:localhost:8080/myportlet.