今天做项目遇到要从一个action里面重定向到另一个action里面传递Map类型的值.可是我无论怎么配置都传递不过去.后来,我把信息序列化为json格式的字符串传递过去.在另一个action里面再将此json字符串序列化为一个map即可以.
代码如下:
首先:我写了一个工具方法,此方法接收一个json对象和一个key(错误信息的key),返回序列化后的字符串.
/** * 错误信息转换的方法.用于传递错误信息到初始化注册页面 * @description * @author 吕兵阳 * @param obj JSON对象 * @param key 错误信息的key * @return Json格式的字符串 */ public String convertJson(JSONObject obj,String key){ obj.put(key, getFieldErrors().get(key).get(0)); return obj.toJSONString(); }
这个是struts2的验证方法:
if(user.getName()==null||"".equals(user.getName().trim())){ addFieldError("name", "用户名不能为空!"); errorMsg=convertJson(obj, "name"); return; }
这个是Struts2的配置文件
<!-- 会员信息 --> <action name="*TUser" class="tuserAction" method="{1}"> <result name="addUser_success">page/success.jsp</result> <result name="doAdd_error">page/saleRegister.jsp</result> <result name="input" type="redirectAction"> <param name="actionName">initInit.action</param> <param name="errorMsg">${errorMsg}</param> </result> </action>
这个就是要接收错误信息的那个action
/** * 初始化数据,加载企业类型和省份下拉框的值 * @description * @author 吕兵阳 * @return * @throws Exception */ public String init() throws Exception { logger.debug("----------------init方法begin---------------"); facttypeList = tfacttypeService.findAllType(); logger.debug("获取到的企业类型信息:"+JSONObject.toJSONString(facttypeList)); errorMsg = new String(errorMsg.getBytes("ISO8859-1"),"UTF-8"); JSONObject obj=JSONObject.parseObject(errorMsg); String errorKey = obj.keySet().iterator().next(); addFieldError(errorKey, obj.getString(errorKey)); logger.debug("错误传递ok!"); shengList = tshengService.findAllSheng(); logger.debug("获取的省份数量:"+shengList.size()); logger.debug("---------------init方法end----------------"); return SUCCESS; }
相关推荐
然后,在Struts2的配置文件(struts.xml)中,你需要将这个Action与对应的URL映射: ```xml <package name="default" namespace="/" extends="struts-default"> <result name="success">/resultPage.jsp ``` ...
为了使Struts2支持JSON,我们需要在配置文件中添加相应的插件,如`struts2-json-plugin-*.jar`,并在Action类中添加`@Results`注解,指定一个JSON结果类型。 以下是一个简单的示例: ```java public class ...
Struts2提供了强大的验证机制,可以在Action类中定义验证规则,或者使用XML配置文件进行验证配置。同时,拦截器(Interceptor)是Struts2的重要特性,可以用来处理数据绑定前后的业务逻辑,如验证、日志记录等。 7...
在Struts2中,这些参数可以直接通过表单元素的`name`属性与Action类中的属性相匹配,无需额外配置即可实现自动绑定。 例如,下面的HTML代码展示了一个简单的表单,其中包含了一个文本框和一个下拉框,分别用于输入...
在传统的Struts2配置中,我们通常会在`struts.xml`配置文件中定义Action、结果类型、参数映射等。然而,随着注解的引入,开发者可以更直接地在Action类上添加元数据,从而简化配置过程。这使得代码更易读,更易于...
- 配置Struts2的配置文件(struts.xml或struts.properties),定义Action和结果。 通过以上介绍,我们可以看出Struts2标签库为Web开发带来了很多便利。在实际项目中,开发者可以根据需要选择合适的标签来构建用户...
Struts2通过读取配置文件(如struts.xml)来管理应用程序的行为。这些配置文件定义了Action的映射、拦截器配置以及结果页面等信息。ConfigurationManager负责解析并存储这些配置信息,通过一个静态Map属性实现key-...
Struts2 中的 Session 用法是通过实现 SessionAware 接口和在 web.xml 文件中配置 Struts2 的 FilterDispatcher 来实现的。通过使用 Session,我们可以在服务器端存储用户数据,以便在多个请求之间共享这些数据。
在`src/main/resources`或`src/main/webapp/WEB-INF/classes`目录下创建`struts.xml`文件,这是Struts2的核心配置文件。对于HelloWorld示例,可以创建一个简单的Action配置: ```xml <!DOCTYPE struts PUBLIC "-//...
6. **结果集转换**:在查询后,将Hibernate查询得到的结果集转化为Struts2可传递的模型对象,如List或Map,然后返回相应的视图名称。 7. **配置Struts2-Hibernate整合**:在struts.xml配置文件中,为每个Action添加...
1. 在Struts2的配置文件(struts.xml)中,需要启用JSON支持并配置相应的Action。 2. 确保在web.xml中配置了Struts2的过滤器,以便正确处理请求。 3. 确保服务器端的Action方法返回一个能够被转换成JSON的类型,例如...
在Struts2的配置文件(struts.xml或struts.properties)中,需要为Action添加一个`@ResultType`注解或结果类型配置,指定为`json`。这样,当Action执行完成后,会返回JSON格式的数据。 3. **JSON Value Stack**: ...
3. **配置struts.xml**:在`struts.xml`配置文件中,你需要声明这个Action,指定结果类型为JSON: ```xml ``` 4. **设置内容类型**:为了确保浏览器正确解析返回的数据,你需要在Action中设置响应的...
1. **配置Struts2 REST插件**:首先,需要在`struts.xml`配置文件中引入REST插件。这通常涉及到添加`<constant>`和`<package>`标签,设置相关的配置项,如: ```xml <constant name="struts.enable....
3. **配置文件**:`struts.xml`是Struts2的主要配置文件,用于定义Action类、结果页面、拦截器等。你需要熟悉XML配置语法,以便正确配置应用程序。 4. **拦截器(Interceptors)**:拦截器是Struts2的一个强大特性...
- **安装**:首先需要将`struts2-jquery-plugin`的JAR文件添加到项目的类路径中。 - **配置**:在`struts.xml`中配置插件并启用相关标签库。 - **动作映射**:创建一个处理Ajax请求的动作。 - **视图**:在JSP...
1. **Struts2配置**:首先,你需要在`struts.xml`配置文件中定义Action类,这个类通常包含处理用户请求的方法。通过配置Action,你可以指定URL请求映射到哪个Action,以及返回的结果页面。 2. **Hibernate配置**:...
Struts2内部采用了依赖注入(Dependency Injection, DI)机制,通过配置文件或注解自动装配Action和其他组件的依赖对象,简化了组件之间的耦合,提高了代码的可维护性和可测试性。 #### 九、Struts2标签库 Struts2...
4. **配置Action**:在Struts2的配置文件(struts.xml)中,我们需要配置这个Action,指定其对应的Action方法和结果视图。例如: ```xml <result name="success">/jsp/select.jsp ``` 这表示当用户访问`/...
要使用此插件,首先需要在Struts2的配置文件(如struts-default.xml或struts-plugin.xml)中引入JSON插件的配置,通常会添加以下XML代码: ```xml <constant name="struts.enable.SlashesInActionNames" value=...