问题标签 [struts2-convention-plugin]

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 投票
2 回答
1473 浏览

file-upload - 上传 SVG 文件时出现“Content-Type not allowed”,即在允许的白名单中

重要提示:以下问题已在 Struts 版本中得到修复2.3.24

从那个版本开始,不需要转义任何字符。

阅读更多:JIRA 问题 WW-4457


我已将 Struts2 FileUpload 拦截器配置为允许 Content-Types 白名单。

这适用于与指定的 Content-Type 匹配的任何文件,但不适用于SVG具有MIME 媒体类型image/svg+xml的文件。

使用此配置:

并上传有效的 SVG 文件,我收到属性定义的错误消息struts.messages.error.content.type.not.allowed

不允许的内容类型:{0}“{1}”“{2}”{3}

{3}用户尝试上传的 Content-Type在哪里;

然后例如:

不允许的内容类型:myFile "Sample.svg" "upload__123__456__78.tmp" image/svg+xml

这与我在白名单中定义的 Content-Type完全相同allowedTypes

请注意,我使用regex模式匹配器,在 struts.xml 中使用以下常量启用:

为什么它不起作用,以及如何使它起作用?

0 投票
1 回答
1356 浏览

java - struts.convention.result.path 在 Struts2 中不起作用

我目前的项目结构如下

我的任务是将所有 JSP 页面放在文件夹 WEB-INF 中,并在项目中进行所有相关更改。

所以我必须更新 struts.xml 中的所有结果标签

在网上搜索后,我找到了一个插件 - struts 约定插件来实现这一点,但它遵循其命名约定。

我可以覆盖 Struts 约定插件配置(不遵循其命名约定)吗?我也尝试过,但它没有反映。我struts.xml的是

当我跑

它显示错误 404。但是如果我将 struts.xml 中的结果更改为

它工作正常。

我不想对所有结果标签进行更改。如何通过在一个地方进行更改来实现这一点?

0 投票
1 回答
1364 浏览

spring - 如何使用带有注释映射的Action类的struts-spring插件配置struts约定插件

我正在尝试使用已经使用约定插件运行的 strut 2 应用程序配置 spring 插件,因此我正在使用注释。我正在使用 ExtJs 提交表单,在我引入 spring 插件之前,它最初运行良好,现在 ajax 请求无法找到操作,并且在 firebug 中没有显示任何响应。

pom.xml

struts.xml

web.xml

应用程序上下文.xml

动作类

Ajax 请求萤火虫报告,XML 选项卡

我的问题是如何配置 struts-spring 插件以使用带有注释的 struts 约定插件。

0 投票
1 回答
1136 浏览

java - 使用命名约定插件拒绝直接访问 Struts2 中的 JSP 文件

我一直在努力解决这个问题,因为我是 Struts2 开发的新手,最近才开始使用这个命名约定插件。

我正在尝试创建一个简单的 webapp,它最初只包含两个页面:

  1. 登录页面 ( login.jsp)
  2. 主页 ( home.jsp)

首先向用户显示一个登录页面,如果提供了正确的用户名和密码,他们就会登录并重定向到主页。

我已经成功地创建了我的小型 web 应用程序,写下了一个自定义登录拦截器,一切正常并按预期工作。HomeAction如果他/她尝试直接调用(home.jsp如果您以前登录过),我可以将用户重定向到登录页面http://myserver/homeAction

当我尝试像这样直接访问 JSP 时出现问题:

http://myserver/home

当我使用这个Convention plugin时,Struts 会获取我的home.jsp插件并显示它。这不是我所期望的行为,home.jsp应该只显示为loginAction成功的结果。

我试图解决这个问题的事情

好吧,据我谷歌搜索,将我的 JSP 放在/WEB-INF/目录中应该可以防止它们被访问,但事实并非如此,因为我所有的 JSP 都在/WEB-INF/content/.

我尝试的另一件事是阻止对任何JSP资源的访问(阻止*.JSP请求)。只要您尝试访问myserver/home.jsp,这就会奏效,但在访问时会失败(如预期的那样)myserver/home

编辑: stackoverflow 中有另一个关于这个问题的问题,但我无法理解答案: WEB-INF 下的 Struts 2 Convention Plugin and JSP files

信息更新:我发现 Struts2 约定插件使用称为“无操作结果”的东西,因此您可以通过调用没有它的扩展名来访问您的目录JSPs内部,它将作为一个虚拟操作处理它,并在成功时返回该操作。这是一个示例来说明我要解释的内容:WEB-INF/contentJSPJSP

如果我home.jsp在我的WEB-INF/content目录中调用http://myserver/home,Struts2 将“触发”一个动作,其结果将是home.jsp. 那么问题的解决方案就是禁用这个“无动作”的结果。

如果没有人提供答案,我将继续更新问题,因为我会寻求解决方案。

0 投票
0 回答
260 浏览

java - struts.xml 中带有“通配符”参数的操作及其等效注释

我在 struts.xml 中定义了一个删除数据库记录的操作。但是,我想使用注释映射此操作。这包含一个“通配符”参数(要删除的记录的 id)。我不太确定使用注释时怎么会这样。

struts.xml中的动作如下:

0 投票
1 回答
1183 浏览

struts2 - 无法在 Struts 2 中使用注释调用操作

这是我的动作课:

FirstAction.java

SecondAction.java

struts.xm升:

web.xml

这是redirect.jsp

还有我的图书馆:

当我单击链接redirect.jsp以调用操作时,例如: call action run4in namespace "User",它正在抛出

我正在尝试找出导致此错误的原因,但看起来我的代码很好。

0 投票
1 回答
1681 浏览

java - HTTP 404 - 没有为命名空间 [/modeldriven] 映射的操作和与上下文路径关联的操作名称 [datosUsuario] [/FormularioMD]

我是struts2的初学者。我在 eclipse 上创建了一个动态 web 项目,以便使用 struts 2。它有问题,我只是不知道为什么。控制台输出是:

我有以下目录结构:

我的 JSP 文件输入数据:

我的动作类,注意:我使用注释:

我的 JSP 文件显示结果:

我的 web.xml 文件:

那么,有谁能帮帮我吗,谢谢。

0 投票
1 回答
903 浏览

java - Struts 2 - 升级后控制器映射错误

从 Struts 版本2.1.8.1升级到2.3.16.3后,我在映射某些控制器时遇到问题。升级前一切正常,但现在 60 多个控制器中有 3 个出现了下一个错误:

错误 [ActionComponent] 无法执行操作://vendor-tree!index 没有为命名空间/和操作名称映射操作vendor-tree!index。- [未知位置]

这个动作必须在/vendor-tree!indexnot in //vendor-tree!index,但我不明白为什么 Struts 只在错误的地方寻找这 3 个控制器。我在每次请求时都将其称为所有这些控制器

<constant name="struts.enable.DynamicMethodInvocation" value="true" />它不会改变任何东西

Struts2:<s:submit> 按钮中的方法属性不起作用是另一种情况,它不能解决这个问题

struts.xml

问题控制器

工作控制器

自定义映射器是

你知道为什么会这样吗?

0 投票
2 回答
2127 浏览

java - 无法使用 Struts 约定插件加载 bean

我想使用基于注释的配置而不是基于 xml。Struts 有约定插件来做这种事情。

所以我删除struts.xml了文件main/resources,将此插件添加为依赖项,在操作上添加一些注释并尝试在服务器(Tomcat 7)上运行我的项目。

当服务器启动时,我得到下一个堆栈跟踪:

问题是struts有xwork-core依赖,所以它位于类路径中,但不知何故tomcat找不到它。这些是我的依赖项pom.xml

我做错了什么?

0 投票
1 回答
655 浏览

java - java.lang.ClassNotFoundException 的未知原因

在应用程序中,我们将Action类声明为 Spring bean。这适用于所有 Struts 映射。

我们将它用于多个 Struts 映射

在所有动作映射声明中,它都可以正常工作,但有一个声明正在破坏并抛出异常:

不幸的是,这不是在 Eclipse 和测试环境中发生的,而是在 QA 环境中发生的。需要一些想法和意见来解决这个问题。