• struts json配置中遇到的问题记录


    struts.xml

        <package name="json" extends="json-default" namespace="/">
            <action name="user"  class="com.Zicheng.Action.UserAction" method="testByAction">
                <result name="success" type="json">
                    <!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
                    <param name="root">dataMap</param>
                </result>
            </action>
        </package>
    

      

    UserAction.java
    public class UserAction extends ActionSupport {
        private Map<String, Object> dataMap;
          public UserAction()
          {
              dataMap=new HashMap<String,Object>();
          }
        public String testByAction() {
            // dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据
            dataMap.clear();
            User user = new User();
            user.setId("123");
            user.setName("JSONActionStruts2");
            user.setPassword("123");
            user.setSay("Hello world !");
            dataMap.put("user", user);
            // 放入一个是否操作成功的标识
            dataMap.put("success", true);
    
            // 返回结果
            return SUCCESS;
        }
        /**
         * Struts2序列化指定属性时,必须有该属性的getter方法,实际上,如果没有属性,而只有getter方法也是可以的
         * @return
         */
        public Map<String, Object> getDataMap() {
            return dataMap;
        }
    

      配置中遇到的问题

    一、Could not find action or result There is no Action mapped for namespace / and action name . - [unknown location]

    经过再三查找,最后确定是因为缺少一个包struts2-json-plugin-2.2.3.jar.

    下载到这个包,此错误消息。

    接下来遇到错误

    二、java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    网上搜一下,缺少的是common-lang包。找一个加入进去,搞定不报错了,开心呀。

    三、但是一看页面上显示的是null,这不对。所以在网上又是继续搜索,最后发现没有加getter方法,最后加了一个dataMap的get方法可以了。

    struts的result方法,需要有getter/setter方法才能获取到值。

    记录留下纪念。

    刚学JAVA,起步有点难呀,JAVA玩的就是配置,玩的就是心跳。

  • 相关阅读:
    航班预定统计(差分数组+前缀和)
    救生艇
    Xcode 的正确打开方式——Debugging
    多次页面跳转后pop回主界面的问题
    理解Bitcode:一种中间代码
    使用AFNetWorking读取JSON出现NSCocoaErrorDomain Code=3840的解决方法
    No identities are available for signing的解决方法
    Aufree/trip-to-iOS
    Alcatraz -- 一个神奇的管理插件的Xcode插件
    GenericKeychain
  • 原文地址:https://www.cnblogs.com/xusir/p/3076979.html
Copyright © 2020-2023  润新知