从后台日志中可以看到是struts无法匹配到相应的action,如果把ckboxtest的配置放到<package name="products" extends="struts-default">中变成和list一样的形式,可以匹配到,但又用不了json了。。在网上搜了些好像用ajax的时候就是专门的一个action,如果像这样普通方式访问和ajax方式访问的在同一个action的class中该怎么配呀,谢谢各位XDajax方式请求的方法和其他方法放在同一个action中,如下:
public class UsersAction extends AbstractAction {
private String tt;
public String getTt() {
return tt;
}
public void setTt(String tt) {
this.tt = tt;
}
private String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
} public String list() throws Exception {
                //省略
return SUCCESS;  
}

public String ckboxtest() {
this.result = "hi" + this.tt;
System.out.println("===>"+result);
return SUCCESS;
}
}struts.xml中相应的配置是这样的:
<package name="products" extends="struts-default">
<action name="list" class="userAction" method="list">
<result>/list.jsp</result>
</action>
</package>

<package name="ttt" extends="json-default">
            <action name="ckboxtest" class="userAction" method="ckboxtest">
                <result type="json"></result>
            </action>
        </package>jsp为:
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<html>
<head>
<body>
<SCRIPT type="text/javascript" src="jquery-1.3.1.min.js"></script>
        <SCRIPT type="text/javascript">
            function clickButton()
            {    
                var url = 'ckboxtest.action';
                var params = {
                        tt:$('#tt').attr('value')
                };
                jQuery.post(url, params, callbackFun, 'json');
            }
            function callbackFun(data)
            {
                alert(data.result);//对应HelloWorld类的message属性
                    //获取数据后渲染页面
            }
        </SCRIPT>        <input id="tt" type="text">
        <input type="button" value="ok" onclick="javascript:clickButton();">
</body>
</html>