问题标签 [struts1]
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.
servlets - 你能解释一下 servlet init() vs servlet request 中 spring-boot 线程的类加载器原理吗?
我们有一个spring-boot
使用嵌入式 Tomcat 的工作应用程序,其中一个 servlet 是旧版 Struts 1.3.10(不要问)。这工作得很好!
或者直到我们添加了BIRT
查看器 servlet,该init()
代码更改了线程的类加载器。
总结一下,@Confuguration
Struts Servlet 和 BIRT Servlet 都是正常ServletRegistrationBean
的。
中的BIRT Servlet正在init()
执行以下操作:
应用程序运行后,对于Struts Servlet的每个请求,它都会尝试从预填充的 HashMap 中解析所需的属性,其中键是 CLassLoader,但它无法找到匹配项:
这是结果:
2014-06-10 08:33:28.971 ERROR 16572 --- [nio-9087-exec-4] o.a.c.c.C.[.[.[/].[ActionServlet] : Servlet.service() for servlet [ActionServlet] in context with path [] threw exception [Cannot find catalog 'struts'] with root cause
我没有其他想法解决它的方法是在 init() 完成之前通过扩展 BIRT servlet 来恢复类加载器:
问题:为什么允许更改线程的类加载器?在这种特殊情况下,这个设置或获取类加载器是错误的吗?如果它不在嵌入式容器中,类加载器会好吗?线程的类加载器应该是可变的吗?有人能这么好心,给我讲讲这个吗?
validation - Struts 验证插入“+”字符
我支持使用 Struts 1.3.10 编写的遗留应用程序,并且我正在使用验证 xml 框架。我使用一个动作来处理 POST 请求,并重定向到另一个动作来显示它。当我处理 POST-ed 表单数据时,我读取表单 bean,存储在会话范围内的临时对象中,并在需要显示它时从该对象中读取。(这是发布模式后的经典重定向)。
看起来像这样:
user posts to Action1 --> [Process, load Session Object] --> Redirect to DisplayAction --> [pull from Session Object for display] --> user gets what they requested.
当用户提交并出现错误时,Struts 会将验证错误发送到 DisplayAction.do —— 我这样做是为了不丢失输入的最新和最大数据。
我有一个用户输入地址的表单,并且对于第一次通过的验证工作正常,但不是连续的。也就是说,如果用户第一次省略了邮政编码,struts 会正确计算出来,然后重定向回 DisplayAction。错误样式等都可以正常工作。如果用户更正了错误(第二遍),那么所有字段都会在有空格的地方插入“+”号:因此,像“10 Oak Street”这样的地址将显示为“10+Oak+Street”——而验证器特殊字符检查失败并一直声称数据错误并且用户卡住了。
任何人都知道为什么“+”会被插入或更好地如何防止它?从未见过这种行为。
_抢
jsp - 从struts1.0升级到struts2.3.16.1
我们有一个使用 Struts 1.0 正在运行的 JSP 项目。这是一个相当大的项目。我们要在 Struts 2.3.16.1 中升级项目。由于我是 struts 框架的新手,我不确定这次升级需要哪些更改。直接从版本 1.0 升级到 2.3.16.1 是否是个好主意,因为 1.0 是一个非常原始的版本。
java - Struts1 - ActionForm Beans 与 ActionForm 类
我是 Struts 1 的新手,我正在尝试通过 apache.org 网站提供的官方文档进行自我教育。
ActionForm Beans和 ActionsForm类之间的区别对我来说并不完全清楚。我确实了解创建 java bean 的标准。但我对“ActionForm 类”部分列出了创建“ActionForm Bean”的原则这一事实感到有些困惑。
为什么这些被列为两个单独的项目?不应该将所有 Struts ActionForms 创建为 java bean 吗?任何人都可以用解释或一些例子来启发我吗?谢谢!
以下是信息来源:
2.3 ActionForm Bean
注意:虽然 ActionForm bean 通常具有与模型 bean 中的属性相对应的属性,但表单 bean 本身应该被视为控制器组件。因此,它们能够在模型层和视图层之间传输数据。
来源:http ://struts.apache.org/development/1.x/userGuide/building_model.html
4.3 ActionForm 类
ActionForm 表示用户与一个或多个页面交互的 HTML 表单。您将提供属性来保存表单的状态,并使用 getter 和 setter 来访问它们。ActionForms 可以存储在会话(默认)或请求范围内。如果他们在会话中,那么实现表单的重置方法以在每次使用前初始化表单是很重要的。框架根据请求参数设置 ActionForm 的属性,并将经过验证的表单发送到适当的 Action 的 execute 方法。
当您编写ActionForm bean时,请牢记以下原则: . . .
来源:http ://struts.apache.org/development/1.x/userGuide/building_controller.html
java - 如何在 struts 1 中使用显示标签?
我想当点击按钮删除时,我会得到CustomerID
并发送给 Action。执行功能删除。
java - Structs Action 类的执行方法总是返回null。Struts 1.3.10
我正在将我们的应用程序从旧版本的 struts 升级到最新的“1”版本:1.3.10。现在,我们尝试处理 Action 的代码总是返回一个空的转发对象。我附上了struts源代码,看起来它总是返回null。在升级之前,我们的代码运行良好,并且转发对象在返回时被填充。
现在,这里是 processActionPerform 的Struts 代码:
如您所见,这调用了 Action 的执行方法。下面是 Struts 的执行方法代码,你可以看到它总是返回 null。
我想知道是否需要更改以使用不同的 Struts 类或方法来使其工作。任何援助将不胜感激。
谢谢!
jsp - 和表现不同
我正在将复选框从 Struts1 迁移到 Struts2。所以我从 Struts1 更改了代码
至
但即使值为true
下面是两者的html脚本
Struts1 html:
Struts2 html:
该字段是布尔值。我从模型对象中将其在动作类中的值设为 true ..但仍未经检查。
更新:
我试过了,但它没有编译
更新1:
我试过了,但没有检查属性,所以尽管它的值为真,但它没有被检查
更新2:
当我打印时,即<c:out value="${eDir}"></c:out>
,我得到的值true
与我把它放在 value 属性中一样,它仍然没有选中的属性。
java - still look for Struts after moving to spring
I've just moved an app (dev on NetBeans and run on glassfish) from Struts 1.3.10 to Spring MVC. I changed my coding, removed all Struts related things, test it in my testing environment. Everything works fine. Then I move the all stuff to production environment. It also works fine. But I notice when starting glassfish, there are a lot of warning on unable to find some Struts renderers (all are "Unable to load class org.apache.struts.faces.component...." or "Unable to load class org.apache.struts.faces.renderer......".
I checked over and over again my project folder. I searched the word Struts in the folder. Nothing is related to Struts. I checked the domain.xml of my dev and production environment. Nothing is mentioned about Struts. Though the app is working fine with Spring now, I would like to get rid of those Struts warning log. Did I miss anything in my checking?
java - 登录认证过滤 java struts
我有个问题。java - 如何在java struts中过滤多个用户登录?
这是我的代码
这是 web.xml
如何区分角色(管理员和用户)。区分管理员和用户可以访问的页面。因为使用我的代码,只能在未登录的情况下进行过滤,同时仍然可以直接访问管理员用户。比如我登录了admin,那么我仍然可以访问
/InternetBanking/pembayaranKartuKredit.do?task=CreditCard
有人可以帮忙吗?谢谢 :)
java - 更改控制器后,Struts 动作未呈现正确的路径
我在一个非常旧的 J2EE/struts 站点上工作,并且由于 PayPal 最近停止支持 SSL 3 协议,我正在尝试实现一个新的托管结帐流程,其中支付网关接受带有订单详细信息的 POST,处理信用卡验证,并通过另一个 POST 返回响应代码(和一百万个其他值)。
我正在尝试利用 struts 中的现有操作,但由于未呈现 struts-config.xml (/store/order/confirmation.do)中指定的路径而被挂断;相反,在处理来自远程服务器的 POST 请求并调用 ActionMapping.findForward() 之后,应用程序只会呈现来自远程服务器的 POST 中请求的相同路径(/store/checkout/submitOrder.do) .
如果我尝试将 redirect="true" 添加到 struts-config.xml 中的转发,我会被重定向到正确的路径,但是会出现一个我无法调试的 pagecontext 异常,因为它没有被记录。
过去的工作方式是 submitOrder 表单是空的——只是一个提交输入。然后,来自基于会话的购物车和相关的客户帐单的结帐细节将被移交给一个特殊的威瑞信库以生成响应。我现在想使用来自新提供商的 POST 表单,但我被这个重定向失败困住了。
struts-config.xml 中的行如下所示:
动作是这样的:
编辑
我已验证 submitOrder 操作正在作为 POST 请求进行处理。我想知道,由于以前的 POST 只是一个空表单,额外的 POST 参数是否会弄脏某些东西并阻止正确的路由。
在tiles-defs.xml 中,confirmation.do 视图的资源是:
该应用程序正在为confirmOrder.jsp视图提供服务,但没有路由到 /store/order/confirmation.do,因此任何重新加载页面的尝试都会提示用户重新提交表单,这显然是不可取的。
我还从 struts-config.xml 中的 submitOrder 操作定义中删除了对 name="emptyForm" 的引用(因为来自远程服务器的表单 POST 没有 emptyForm name 属性),它定义为:
我也不确定这会产生什么影响。