Tag: struts2

Struts2中的拦截器线程是否为UNsafe?

我知道Struts2 Action类是线程安全的,因为操作放在Value Stack中。 值栈依次是Action Context的一部分。 由于Action Context是线程本地的,因此存储在Action Context(包括值栈)中的值对于每个线程都是唯一的。 因此,Actions是线程安全的。 但考虑一下拦截器:它们非常有用,它们为程序员完成所有繁琐的小工作……比如validation,获取参数值等等。但需要考虑的是:拦截器可以在多个请求之间共享。 那么这会使拦截器线程不安全吗? 考虑到这个问题,我试图在网上浏览一些与此问题相关的好文章。 我发现了一篇非常好的文章,他们已经清楚地提到了一个例子拦截器如何不是线程安全的。 该网页是: http : //www.bullraider.com/java/struts2/tutorials/interceptors-and-thread-safety 我从这篇文章中得知,拦截器线程不安全的主要原因是拦截器只创建了一次。 即每个拦截器只有一个对象。 因此,当线程之间共享Interceptor的相同实例时,实例字段不安全。 在文章的最后,提到有些情况,甚至拦截器都是线程安全的。 但他们没有提到任何此类案件。 我在网上冲浪找到答案……但徒劳无功:( 任何人都可以告诉我或给我一个链接,在那里我可以找到如何使拦截器线程安全(或拦截器线程安全时的情况是什么)?

Struts 2:Actions之间的参数

我有以下问题:当我完成一个表单并且操作保存表单的值时,我需要传递一个参数(例如ID),这将转发到结果=“成功”,我需要将要调用的操作在成功中带来了ID和其他参数,以便以后在下一个表单中使用以保存此信息(info-form2和info.form1)… 例如: FORM1(USER)====“成功”====> FORM2(ADDRESS) userForm.html ===================> addressForm.html?user_id = X …(其中X:Id将UserAction抛出(方法:保存)传递给AddressAction(方法:newAddress)) 我将非常感谢你的帮助 提前致谢

Struts 2 – 意外exception捕获设置’xx’

我试图从HTML表单提交未知数字输入到Action类,并使用Action类中的请求方法(使用ServletActionContext)获取Input参数信息。 但它的投掷 Unexpected Exception caught setting ‘xx’ on ‘class classname Error setting expression ‘xx’ with value [‘yy’, ] 由于表单中的输入元素是使用JS动态添加的,因此我无法在Action类中使用getter和setter。 如何处理Action类没有任何exception? JSP: Team Activity Log function addRow(tableid) { var table = document.getElementById(tableid); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var cell1 = row.insertCell(0); var element1 = document.createElement(“select”); element1=document.getElementById(“sele”).cloneNode(true); element1.type=”select”; cell1.appendChild(element1); var cell2=row.insertCell(1); var element2 = […]

来自struts2的video流动作多个contentType?

我正在尝试播放video文件,因为我的动作是将contentType设置为 应用/八位字节流 现在,如果我将其更改为audio / mpeg,则用户无法下载其他类型的文件。 我想知道我们可以设置多种内容类型,如果是这样的话怎么样? 如果它不可能在用户可以上传和下载任何类型的文件的情况下该怎么办。

如何使用Struts2为JSP页面使用多个按钮(每行一个)

我真的不知道如何标题我的问题,但我有一个JSP页面,其中有一个表格显示数据库中的元素,我希望每行都有一个按钮来删除或编辑该特定行。 这是我生成表的JSP页面的一部分(表和按钮生成正常) table { empty-cells: show; } Action 我如何得到它,以便当我点击某一行上的某个特定按钮时,我的程序将知道它应该执行哪一行(编辑/删除)? 对不起,我仍然是Struts2的新手……

如何使用ognl更改会话范围属性?

是否可以使用ognl更改会话范围属性? 例如,如果我在会话中有一个名为PROCESS_CONFIG的属性,它是一个具有属性name的对象,那么如何在JSP上更改此属性name ? 我尝试了以下但它不起作用: 当我提交表单并在我的操作中访问会话对象时,通过ServletActionContext.getRequest().getSession().getAttribute(“PROCESS_CONFIG”) ,属性name没有改变。 编辑: 在会话中保存为PROCESS_CONFIG的对象是一个非常深的复杂对象(由对其他对象的大量引用组成,包含对象列表),在我的视图中,我只想呈现其属性的一个非常小的子集 (包括来自的属性)它的组成对象)。 因此,将所有其他字段隐藏在我的JSP中是不切实际的! 有问题的视图是一个可以更改这些字段值的表单,我希望直接并自动更新我的struts 2会话上保存的对象PROCESS_CONFIG ,就像PROCESS_CONFIG对象是我的操作的属性一样。 例如,给定前面的代码片段, PROCESSNAME是PROCESS_CONFIG对象的一个​​属性,我想在PROCESS_CONFIG对象中自动更新它,而不是在我的操作上有一个PROCESSNAME属性,然后必须在我的PROCESS_CONFIG对象上显式设置PROCESSNAME 。

是否可以为整个struts webapp配置统一格式的日期格式?

无论如何id get exception Could not parse date 。 日期格式有统一的公司标准 – ‘dd/MM/yyyy’ 有些计算机具有不同的系统区域设置。 我正在为datepicker使用jQueryUI(它是小部件的标准,并且已经解决了css样式以匹配应用程序主题)。 开始时,我没有找到更好的解决方案,然后使用SimpleDateFormat对象手动将日期字符串转换为日期对象。 现在我有转换器类,但仍然需要配置每个具有java.util.Date属性的Action。 我正在使用XML配置,我确实尝试添加到struts.xml : 它没用。 是否有任何可以强制所有Web应用程序使用单一日期格式而没有区域设置只是输出和输入日期的统一格式? 或者我如何提取struts日期类型转换器所期望的日期格式的方式,所以我可以使用js转换日期之前发送到服务器以匹配struts期望?

如何在Struts2中提交的表单上传递URL中的参数

我正在Struts2中做一个项目,我需要在URL中设置一个参数,如下面链接中的user参数。 我希望在单击表单提交按钮而不是单独链接时传递此参数。 我知道如何使用执行此操作,但这样我需要创建一个链接而不是表单提交。 有人可以帮我一个代码示例如何做到这一点? 我知道有一种方法可以用HTML或Struts1来做,但是如何用Struts2做呢? 如果有一种方法可以在struts.xml执行此操作,请通过示例进行说明。

Java Struts2(未找到Action类)

我得到的错误。 它在前一天运行良好,但今天打开时我得到以下错误。 Action class [com.tutorialspoint.struts2.HelloWorldAction] not found – action – file:/C:/Users/sai/Struts2/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/HelloWorldStruts2/WEB-INF/classes/struts.xml:10:30 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:374) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:329) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452) at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4828) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5508) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) […]

如何在Struts 2中通过XML配置配置@SkipValidation

在Struts 2中, 我试图跳过基于XML配置的方法的validation。 根据我的应用程序,我不能使用注释。 所以我不能使用@SkipValidation注释。 这有什么替代方案吗? 我有一个动作类,它有五个方法create , update , delete , search和view 。 我想只validation两种create和update方法。