大家好,最近做项目时,遇到一个很棘手的问题,代码如下:
struts.xml<!-- JSON And Ajax -->
<package name="json" namespace="/json" extends="json-default">
      <action name="user" class="userAction" method="show">
           <result type="json">
           </result>
      </action>
</package>UserAction(控制器)public class UserAction extends ActionSupport
{
        //消息
        private String msg;
        //姓名
        private String name;
        //业务逻辑引用
        private VoteOptionService voteOptionService;
        public String show()
        {
        
              this.name = "萧峰";
              this.msg = "你好吗?";
        
              Util.show("执行show()方法");
        
              return SUCCESS;
        }
        //name和msg的getter和setter略
        //问题就出在下面了
        //我用Spring依赖注入为voteOptionService注入数据后
        //json.jsp就无法获得这个Action的数据了
        //没有报错,但是获得数据的为undefind
        //注释掉这个注解,就没问题
        //错在这里
        @Resource
        public void setVoteOptionService(VoteOptionService voteOptionService)
        {
                this.voteOptionService = voteOptionService;
        }
}json.jsp(视图)<!-- import jQuery library -->
<script type="text/javascript" src="jquery/jquery-1.9.0.js"></script>
<script type="text/javascript">
     $(document).ready(function(e) {
          $("button#btn").click(function(e) {
                $.post("json/user", function(data){
                       alert(data.name + "," + data.msg);
                });
          });
     });
</script>
<body>
    <button type="button" id="btn">JSON</button>
</body>问题都在代码了,谢谢了jsonajaxjquerystruts2

解决方案 »

  1.   

    $(document).ready(function(e) {
              $("button#btn").click(function(e) {
                    $.post("json/user", function(data){
                           alert(data.name + "," + data.msg);
                    },"json");
              });
         });以json的方式返回,,,这样你试试
      

  2.   

    请问是不是单独用struts没出现问题呢
      

  3.   

    会不是你的web.xml配置出错啦?一下我的项目ssh的配置:你参考下
    <?xml version="1.0" encoding="UTF-8"?>
    -<web-app xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"> -<filter> <filter-name>struts2filter</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> -<filter-mapping> <filter-name>struts2filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> -<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-*.xml</param-value> </context-param> -<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> -<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> -<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
      

  4.   

    把注解去掉就可以使用的话你的action组件是不是没交给spring容器管理?
    action组件还可以交给struts-spring插件管理,如果是这样的话,要把spring容器中的bean组件注入到action组件中要用名称注入的方式,当然set方法不能少。
    其实,你把注解去掉之后能用,应该就是使用的这种方式了。
      

  5.   

    不是,就是写@Resource注解出的问题,我也不知道怎么了
    不过我又写了个简单点的Struts2和Spring整合的测试项目,就没问题了
    真心郁闷呀,希望以后不要再碰到这种事情了,谢谢了
      

  6.   


    谢谢大家的热心回答,我又写了个简单的测试项目,测试Struts和Spring整合后使用JSON
    他居然可以了,真心郁闷呀,希望以后不要再碰到类似的问题了
      

  7.   

    曝曝光: 向大家推荐一位  东软熙康里面的极品纯爷们
    向大家推荐一位  东软熙康极品老爷们
    这位纯爷们姓李,全名“李大软饭”,字英伟  号??(乱码) 官方名称:XX    生于1974年 毕业于日本某著名野鸡大学,属“海归”
    不知道他妈怎么给他起的名字,真是英雄伟岸,人品无敌,臭名远洋。
    李大软饭自从09年被大连华信踢出去以后,不知道怎么混的,居然混进来了熙康这个前途光明的部门。
    这个快40的大老爷们,简历上基本啥都会,就是实际基本啥也不会,一进部门,马上把吃软饭的专业技能发挥得淋漓尽致。
    任何东西都不会,告诉10遍也记不住,再告诉10遍也还是故意记不住,
    所有的活必须由他本组一个小姑娘和他组长一个女生干,因为不干也不行,不干被会被李大软饭重复重复再重复的骚扰给逼疯。
    于是,靠这2个女生的汗水,李大软饭混过了试用期。而且,工资是2个软开的娘们的总和。
    随着事业部的扩张,李大软饭的项目组也经常跟随变化,李大软饭寄生的对象也不断变化,
    小男小女不算什么,基本都是他吃的对象。
    一个瘦小男生,曾经被大软饭缠得被迫把所有的工作全部做完了后,才给放走!
    什么大连PSD熙康组,沈阳TSD熙康组,甚至商用借调熙康的人员都成他吃软饭的对象。
    李大软饭已经进化成为了人见吃人、佛见吃佛的境界。
    有一个的测试小姑娘,被李大软饭驱使来Coding,居然快逼成了开发人员。
    各位看官,你们以为李大软饭就修炼过这招嘛!没有,再解释下大软饭另外有个中级招数。
    李大软饭有个习惯,就是上班的时候,不在座位上。办公室里面只要不是他在重复重复再重复的问人家,基本就是不上班(看不见)。
    我们部门有个同事统计过,李大软饭一周能够为公司工作的时间不超过4小时。
    但是,每天快要下班的时候,大软饭必须出现在自己办公室座位旁,先附近溜达下,看下领导在不在,
    然后,如果领导加班在办公室,
    大软饭假装去抽跟烟,原来在B2 3楼的时候,他都躲在微波炉的小屋;后来回A2 4楼后,他基本就去西南角的楼梯口躲着,
    等着办公室里面的人大部分都上班车后,他马上从藏身处跑回来,拿起手机(经常是没开机的),
    一边在领导边上溜达,一边大声的喊:
    “喂! 老婆,我今天加班”
    或者
    “喂! 妈,我今天加班 晚点回去”(真不要脸......)
    可是,大家想问了,
    那么,李大软饭上班在座位上的时候在做些什么呢?
    李大软饭有个很出众的癖好,喜欢在一边挖鼻孔一边模拟各种动物的声音。
    大家经常在熙康的办公室里面,不停听见有一个人,嘴里面嘟嘟囔囔,仿佛是唱歌,仿佛叹气,仿佛是在作诗......
    嗯!
    这个就是李大软饭在发出声音。
    2010年7,8月份,李大软饭由于没人敢要,被分给不了解行情的一个TSD的架构师做TCOE,
    这个项目组封闭在A2楼2楼的一个会议室。
    “咳 呜 嗯   哎呜 咳  哎嗯 嗯 哎”   
    整个会议室不时的有群类似哺乳动物的声音在回荡,而且经久不息,
    李大软饭持续的发出各种奇怪声音,
    过一会,好像发累了,李大软饭下楼从ATM买了点花生类的食品,又开始“咯 咯 咯”的声音
    搞得新来的一个测试小姑娘差点晕倒,
    商用借调熙康一个叫XXX的同事差点恶心得无心干活......
    如果你感觉李大软饭开始在工作、心理上全面极品的话,那你就大错特错了。
    这还不是极品,
    我想最经典的就是“李大软饭喝酸奶”,如果任何人体验过“李大软饭喝酸奶”,绝对无法遗忘的奇特景观。
    喝酸奶,是李大软饭每天上班比较重要的事情之一。而且,要隆重的喝,持久的喝。
    每天中午吃晚饭,李大软饭一定采购一瓶酸奶带回办公室喝,
    可能酸奶这个东西对于李大软饭来说是天珍,
    李大软饭喝酸奶也有一套流程,先拿吸管全喝完,喝空,
    然后,扔了? 不,然后才是高潮,
    李大软饭叼着吸管,从上到下,把整个酸奶塑料瓶的瓶壁一圈一圈吸几遍,
    结束了? 不够,在用嘴戳着吸管,不断的让吸管在塑料瓶里面转来转去,
    如是者,常常持续10分钟
    于是,这个办公室房间里面,都会听见一个“胡噜 胡噜 胡噜 ....”的声音
    一个大老爷们,吸一个空酸奶瓶长达10分钟。
    当李大软饭还在A2 119门口坐着的时候,曾经把一个员工的恶心得不敢回办公室
    一段时期内,每当李大软饭喝酸奶的时候,大家要么跑出去,要么在围观一个貌似哺乳动物的东西。
    大家都恶心得爬正在桌子上笑,
    东软熙康最光彩照人的-明星员工崔鹏自豪地说:“李英伟是我最敬业的员工”!  
    哈哈
    待续............[/size]
      

  8.   

    楼主,能把代码,分享一下吗,我也碰到这个问题了,谢谢,[email protected]