不知到struts.xml中的package表示什么含义,里面的属性应该怎样配置。我的struts.xml:
<struts>
<package name="TestStruts2" extends="default" namespace="/" >   《namespace表示什么?
        <action name="sum" class="action.SumAction">
         <result name="zhengshu">zhengshu.jsp</result>
         <result name="hushu">hushu.jsp</result>
        </action>           
</package>    
</struts>jsp页面: <s:form action="sum.action">
     <s:textfield name="n1" label="第一个数"></s:textfield>
     <s:textfield name="n2" label="第二个数"></s:textfield>
     <s:submit value="求和"></s:submit>   
    </s:form>
提交不进去,报错

解决方案 »

  1.   

    package表示包名,将action,result类型,interceptor和interceptor stack等元素组织为一个逻辑单元的一种方式,简化维护工作,提高复用性
    包名是唯一的,不能有重复。package元素的namespace将包中的action配置为不同的名称空间,这样不同的名称空间中可以使用同名的action。默认名称空间是"",当你在package中不指定namespace时候,就是使用的这个默认名称空间,如果在指定的名称空间中没有找到action,则框架就会在默认的名称空间中找.你的代码中指定的是"/" 根命名空间,则你访问的action地址应该是  <s:form action="/sum.action">"/"和"/test/aa" 和 "/test" 是3个不同的命名空间,框架也不会解析命名空间为一系列“文件夹”,没有目录的这个概念
      

  2.   

    package只是表示你的一个action路径的分类,里面可以包含多个action,namespace是你的应用的root路径,现在配置的是"/",则"/sum.action"类似的action会进入到你这个package下面处理
      

  3.   

    package作用和java类一样 区别重名的action   
    namespace代表action访问路径   namespace+actionName
      

  4.   

    一般针对模块来命名namespace 比如你针对部门管理的模块的struts配置文件中,都放在名为"dept"这个package里,用“/department” 这个namespage
    对用户管理的模块的配置文件中,放在"user"这个package里,用"/user"这个namespage那么配置文件应该是这样子
    <package name="dept" extends="default" namespage="/department">
      <!--配置文件-->
    </package><package name="user" extends="default" namespage="/user">
      <!--配置文件-->
    </package>
    那么你提交的action的地址就应该是这样子 /应用程序名/department/departList.action
    /应用程序名/user/userSave.action
    ...参看struts2官方doc,很清楚的写着
      

  5.   

    package是包名,如果东西不多,可以使用默认的包名。而且这个<result name="zhengshu">/zhengshu.jsp</result>
    需要在页面的名称前面加个斜杆。
      

  6.   


    form  少一个namespace属性吧?好像是。你加上试试。
    package意思是包 防止命名重重复。namespace是访问时的路径。