标签: struts-action

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))

我将非常感谢你的帮助

提前致谢

java parameters struts2 java-ee struts-action

8
推荐指数
1
解决办法
5万
查看次数

如何确定请求是Ajax还是Normal?

我想以不同的方式处理AJAX请求与正常请求的错误.

如何在Struts2操作中识别请求是否为AJAX?

java ajax struts2 http-headers struts-action

7
推荐指数
1
解决办法
1万
查看次数

Struts2:<s:submit>按钮中的方法属性不起作用

我在jsp中有一个表单.有两个提交按钮:"搜索"和"添加新"按钮.我已经为每个按钮设置了自己的方法属性.

<s:form name="searchForm" action="employeeAction" method="post">
    <s:textfield name="id" label="Employee ID"/>
    <s:textfield name="name" label="Employee Name"/>

    <s:submit value="Search" method="doSearch"/>
    <s:submit value="Add New" method="doAddNew"/>
</s:form>
Run Code Online (Sandbox Code Playgroud)

在struts.xml中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

    </package>

    <package name="example" namespace="/example" extends="default">

        <action name="employeeAction" class="example.EmployeeAction">
           <result name="search">/example/search.jsp</result>
           <result name="add">/example/add.jsp</result>
        </action>

    </package>
</struts>
Run Code Online (Sandbox Code Playgroud)

在EmployeeAction类中

public class EmployeeAction …
Run Code Online (Sandbox Code Playgroud)

java jsp struts2 submit-button struts-action

6
推荐指数
1
解决办法
3万
查看次数

找不到操作或结果

我正进入(状态:

com.opensymphony.xwork2.util.logging.commons.CommonsLogger 警告 找不到操作或结果 与上下文路径 [/] 关联的命名空间 [/] 和操作名称 [] 没有映射的操作。- [未知地点]

我使用 RAD + WebSphere 的组合进行开发,代码如下:

struts.xml:

<struts>
    <constant name="struts.devMode" value="true" />
    <constant name="struts.custom.i18n.resources" value="ApplicationResources" />
    <package name="default" extends="struts-default" namespace="/">
Run Code Online (Sandbox Code Playgroud)

网页.xml:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class> 
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
    <welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

我已阅读所有博客并尝试了网站上提到的所有内容。由于某些不同的原因,我无法找到这是一个错误。

java configuration struts2 struts-action action-mapping

6
推荐指数
1
解决办法
1万
查看次数

struts注释@Result应该只是在类级别吗?

我正在阅读Struts2文档,发现其文档中存在一些矛盾.在此链接https://struts.apache.org/docs/convention-plugin.html

Convention插件允许操作类为操作定义不同的结果.结果分为两类,全球和地方.全局结果在操作类中定义的所有操作之间共享.这些结果被定义为动作类的注释.本地结果仅适用于定义它们的操作方法

但是,在另一个链接https://struts.apache.org/docs/result-annotation.html中,建议:

@Result注释位于Action类级别而不是方法级别.这与基于XML的Action配置中的内容相匹配.不要试图诠释你的行动方法; 不起作用.

哪一个是正确的?可以@Result在方法级别定义吗?

java configuration struts2 struts2-convention-plugin struts-action

5
推荐指数
1
解决办法
530
查看次数

Struts 2 - 使用任何URL处理的映射操作

我正在使用Struts2创建一个Web应用程序,我遇到了与任何URL一起使用的映射操作的问题.

在我的struts.xml文件中,我已经配置了一个名为"/ registration"的包,其中包含一些操作,主要是"register".我的应用程序的上下文根是"app/test".

要访问注册表单,我可以转到"localhost:8080/app/test/registration/register.action"并加载我的表单并且效果很好.

但是,如果在命名空间后面的URL中添加了任何内容,例如"localhost:8080/app/test/registration/arbitrary/text/here/register.action",表单仍会加载.

我想防止这种情况发生,因此您只能访问表单正确的URL.我在struts.xml和web.xml中尝试了许多不同的配置选项但无济于事,我无法在网上轻松找到有关此问题的知识.

任何帮助将不胜感激,谢谢!

在struts.xml

<struts>
    <package name="myPackage" namespace="/registration" extends="struts-default">
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
        </result-types>
        <action name="register" class="edu.uconn.test.action.RegistrationAction" method="input">
            <result name="input" type="tiles">/register.tiles</result>
        </action>
    </package>
</struts>
Run Code Online (Sandbox Code Playgroud)

java url web.xml struts2 struts-action

5
推荐指数
1
解决办法
1522
查看次数

使用 Struts 2 REST 插件的操作未映射错误

我写了一个简单的代码来将rest与Struts 2.3.24集成

我有我的 Struts XML:

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
                        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.mapper.class"                      value="rest" />
    <!--  Overwrite Convention -->
    <constant name="struts.convention.action.suffix"          value="Controller"/>
    <constant name="struts.convention.action.mapAllMatches"   value="true"/>
    <constant name="struts.convention.default.parent.package" value="com.pag.rest.service"/>
    <constant name="struts.convention.package.locators"       value="service"/>
</struts> 
Run Code Online (Sandbox Code Playgroud)

我的控制器类是:

package com.pag.rest.service;
public class RequestController {

    // GET 
    public String index() {
        return "SUCCESS";
    }

    // GET 
    public String show() {
        return "SUCCESS";
    }

    // POST
    public String create() {
        return "Create - SUCCESS";
    }

    // PUT 
    public String update() {
        return …
Run Code Online (Sandbox Code Playgroud)

java rest struts2 struts-action struts2-rest-plugin

5
推荐指数
1
解决办法
345
查看次数

获取Struts2中已配置操作的列表

在使用Struts2(2.3.20)的项目中,我想在应用程序启动时运行配置的操作(名称,类,命名空间,方法).

我正在使用

  • Struts 2.3.20
  • 支柱 - 弹簧 - 插件
  • Struts的惯例,插件

供参考:我已经完成了一些关于bean和Struts注入的工作,所以不是很全新,但是我坚持解决这里所说的问题.

关于如何获得这个的任何指示将不胜感激.

进一步说明

阅读Andrea在下面的回答我看到我需要解释我需要什么.

我正在为应用程序构建应用程序菜单构建器功能.我的计划是获取操作配置,并根据选定操作类和方法的注释中的信息构建"菜单节点"树.

我在config-browser中的代码问题是,Configuration(xwork)似乎在Struts组件之外不可用.由于这是一个应用程序启动任务,它并不真正适合Struts的MVC组件模型.我想把菜单构建初始化放在一个ServletContextListener.

假的例子

每个请求只是连接actionconfig < - > annotation < - > my_custom_menu.从这里我可以生成一个菜单结构,从动作类和方法的注释提供.

public class ActionMenuBuilderListener implements ServletContextListener {
  @Override
  public void contextInitialized(ServletContextEvent arg0) {
    List<ActionCfg> actions = Struts.getConfiguredActions(); // thisi is where I'd like some help
    for(ActionCfg action : actions) {
      MenuAnnotation annotation = getAnnotationFromMethodOrClass(action);
      if(annotation != null) {
        addMenuItem(action, annotation);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

下面ActionCfg是Struts为操作配置返回的任何类,Struts.getConfiguredActions()是对Struts组件的一次或多次调用,addMenu(...)也是我向我的结构添加菜单项节点的地方.该结构后来成为JSP-s构建菜单的目标. …

java spring struts2 struts-action struts2-config-browser

4
推荐指数
1
解决办法
1169
查看次数

Struts会话表单bean不保留状态

我正在使用Struts 1.3创建一个类似向导的界面,包括3个jsp页面和3个Struts动作.流程如下:page1> action1 - > page2> action2 - > page3> action3

我使用会话表单bean(具有会话范围的操作表单)在请求之间共享数据.我遇到的问题是我在第2页中提交的数据在操作2中可用,但在行动3中没有.我有疑问可能是我在第3页上没有表格来保存这些数据,或者因为我打电话action3通过jQuery post方法而不是常规表单提交,但我真的不确定.

我差不多一天都在挖掘所有互联网,但仍然没有运气.谁能提供一些帮助.非常感谢.

java forms session struts struts-action

4
推荐指数
1
解决办法
7954
查看次数

我应该在Struts2视图层中检索数据库记录吗?

我有一个编辑页面,我想从数据库中检索主题级别,并显示为用户编辑课程的选项.

提交表单时,它将发出新请求,courseBean将使用XML验证捕获用户输入.当XML验证失败时,它将使用courseBean转发,后者刚刚捕获了edit.jsp的用户输入.

在此输入图像描述

所以每次我去edit.jsp,我都会检索数据库记录.我应该这样做吗?

此外,我尝试检索主题litlevel lit并将它们作为请求属性存储在动作类中,该动作类在第一次显示edit.jsp.但是,当新请求来自用户输入时,从数据库检索的主题列表级别列表将不再可用.

代码(edit.jsp):

<%
    Session session2 = HibernateUtil.getSessionFactory().getCurrentSession();
    Transaction tx = session2.beginTransaction();
    Query q = session2.createQuery("from Subject");
    List subjectList = q.list();
    List levelList = session2.createQuery("from Level").list();
%>

<div class="control-group">
    <label class="control-label" for="inputPassword">Subject</label>
    <div class="controls">
        <select name="subject_id">
            <%
                for (Object subjectObject : subjectList) {
                    Subject subject = (Subject) subjectObject;
            %>
            <option value="<%=subject.getId()%>"><%=subject.getName()%></option> …
Run Code Online (Sandbox Code Playgroud)

java model-view-controller jsp struts2 struts-action

3
推荐指数
1
解决办法
3220
查看次数

如何使用ActionContext中的参数,请求和会话对象?

在这段代码中,我使用ActionContext从Request对象获取Session和ServletActionContext.我觉得这是不好的做法,因为必须只对Request对象使用ActionContext.

ActionContext的Request对象是否等同于Servlets中的Request对象?如果是,如何使用它获取请求参数?

Map session = (Map) ActionContext.getContext().getSession();
HttpServletRequest request = ServletActionContext.getRequest();
String operatorId = request.getParameter("operatorId");
session.put("OperatorId", operatorId);
// getting hashmap from Bean
analysisNames= slsLoginDetailsRemote.getAnalysisNamesIdMap(); 
// sending map for multiselect
session.put("AnalysisNames",analysisNames); 
Run Code Online (Sandbox Code Playgroud)

java session struts2 request struts-action

2
推荐指数
1
解决办法
2万
查看次数