Tag: struts2 convention plugin

使用带有struts.xml的convention插件

我在我的项目中使用约定插件,一切都很好,直到我需要添加自定义拦截器。 要添加自定义拦截器,我需要在项目中使用struts.xml。 但是当我添加struts.xml时,每个页面都会出现404错误。 我试过这个解决方案,但似乎没有用。 谢谢。

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

我目前的项目结构如下 WebContent WEB-INF View TestPage.jsp other JSP pages… 我的任务是将所有JSP页面放在WEB-INF文件夹中,并在项目中进行所有相关更改。 WebContent WEB-INF View TestPage.jsp other JSP pages… 所以我必须更新struts.xml中的所有结果标记 /View/TestPage.jsp 至 /WEB_INF/View/TestPage.jsp 在网上搜索之后,我找到了一个插件 – struts convention插件来实现这一点,但它遵循它的命名约定。 我可以覆盖Struts约定插件配置(不遵循其命名约定)吗?我也尝试过,但它没有反映。 我的struts.xml是 /TestPage.jsp 当我跑 localhost:8080/project-name/hello1 它显示错误404.但是如果我在struts.xml中更改结果为 /WEB-INF/View/TestPage.jsp 它工作正常。 我不想对所有结果标签进行更改。如何通过在一个地方进行更改来实现此目的?

如何在不使用任何操作类的情况下使用Struts2约定

在Struts2中,我们可以在不使用struts.xml动作类的情况下定义动作,如下所示: /error.jsp 在我的应用程序中,我使用struts2 convention 。 在这种情况下如何避免编写动作类。 我有很多场景,我只想在不使用任何业务逻辑的情况下访问该页面。 我的结果路径不仅仅是一个JSP。 我正在使用瓷砖。 我使用的代码如下: @Action(value=”homePage”, results={@Result(name=”success”, location=”homePage”, type=”tiles”)})

Struts 2 Convention插件和WEB-INF下的JSP文件

使用Struts2约定插件时,即使没有定义HelloWorld.java ,插件hello-world.action自动将hello-world.action请求转发到/WEB-INF/content/hello-world.jsp 。 请参阅http://struts.apache.org/release/2.1.x/docs/convention-plugin.html 。 另一方面,我们将JSP文件放在WEB-INF下以避免任何直接访问JSP文件。 我认为约定插件的这种行为破坏了JSP访问策略。 任何人都可以通过简单地调用a,即时构建,动作来直接访问JSP。 我对么?! 如果是,我们可以禁用此function吗?

struts2 convention插件无法正常工作

我试图用常规插件Struts2运行应用程序。 使用如下配置的struts.xml ,应用程序很好: /index.jsp hey 现在我删除了struts.xml并添加了一些这样的注释: @Namespace(“/”) @ResultPath(value=”/”) public class CountryAction extends ActionSupport implements ModelDriven{ private List worldCountry; private Country country = new Country(); public Country getCountry() { return country; } public void setCountry(Country country) { this.country = country; } // HttpServletRequest request; @Action(value=”/hey”,results={@Result(name=”success”,location=”/index.jsp”)}) public String get() throws SQLException { CountryService cs = new CountryService(); […]

Struts 2 convention插件 – 上传超过2 MB的文件

如果我尝试上传超过2 MB大小的文件,则会出错。 我发现在apache网站上说“有两个单独的文件大小限制。首先是来自Struts 2 default.properties文件的struts.multipart.maxSize。出于安全原因,此设置存在以禁止恶意用户上传极大文件提交你的服务器磁盘空间。这个设置默认大约2兆字节,应该调整到你需要框架接收的最大文件大小(最大2格) 所以我发现这个问题可以通过在struts.xml文件中添加带有所需最大限制的标记来解决。 我们使用的是struts2-convention-plugin,所以我们没有struts.xml。 所以我不确定在哪里定义这个最大文件大小… 如果你们中的任何一个人遇到过这个问题,请告诉我。 感谢您的帮助。

Struts 2错误 – com.opensymphony.xwork2.util.logging.commons.CommonsLogger错误

我正在尝试运行Struts2示例应用程序。启动服务器时,我遇到错误和代码,从这里使用。 我在这里实现了相同的代码相同的jar。 struts2-convention-plugin-2.3.1.2.jar,asm.jar, antlr-2.7.6.jar,commons-fileupload-1.2.2.jar, commons-io-2.0.1.jar,commons-lang-2.5.jar, commons-logging-1.1.1.jar,commons-logging-api-1.1.jar, freemarker-2.3.18.jar javassist-3.11.0.GA.jar,ognl-3.0.4.jar,struts2-core-2.3.1.2.jar,xwork-core.2.3.1.2.jar Jun 29, 2013 6:58:18 PM com.opensymphony.xwork2.util.logging.commons.CommonsLogger error SEVERE: Unable to read class [com.tutorialspoint.struts2.Employee] java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2854) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) at com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.java:780) at com.opensymphony.xwork2.util.finder.ClassFinder.(ClassFinder.java:165) at org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:376) at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:334) at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66) at […]

Struts 2 – 重用自定义表达式validation器

在struts 2中,我们可以开发@CustomValidator ,它可以在应用程序范围内使用 @CustomValidator(type = “CustomerNumberValidator”, fieldName = “customerNo”) 为了validation@ExpressionValidator一个FIELD我们使用@ExpressionValidator @ExpressionValidator(expression = “( (!”.equals(account.firstName) && (!”.equals(account.lastName) ) || (presonalAccount == false)”, key = “validate.account.name”) 如果表达式太复杂并且需要在MORE THAN ONE FIELD上工作,我们使用OGNL来调用静态方法。 静态方法将执行validation并返回一个boolean @ExpressionValidator(expression = “@foo.bar.CalendarUtil@compareDates(fromDate,toDate)”, key = “validate.date.before”) 以上是自定义表达式validation器的一些方法! 我们在应用程序范围内使用@foo.bar.CalendarUtil@compareDates来为我们进行此validation。 还有另一种方法可以让我们使用自定义宽validation器吗?! 是否有任何可以添加到struts的自定义表达式validation器,我们可以按照我们使用@CustomValidator的方式调用它