struts的formBean是通过什么反射加载的,是冒一个属性?
   请大侠解答

解决方案 »

  1.   

    action-mapping   中的name属性
      

  2.   

    想知道原理, 建议去找ActionServlet源码. 
      

  3.   

    一般strutsconfig.xml有类似如下代码:
     <form-beans>
        <form-bean name="LoginF" type="com.LoginForm"></form-bean>
      </form-beans>
    <action path="/login" type="com.LoginAction" name="LoginF" input="/Error.jsp" scope="session" attribute="LoginF">
      <forward name="loginsucess" path="/LoginSuccess.jsp"></forward>
      <forward name="loginfailure" path="/Loginfailure.jsp"></forward>
      </action>
    actionServlet通过
    查找strutsconfig.xml里的<action path="/login" type="com.LoginAction" name="LoginF" input="/Error.jsp" >
    查到映射名LoginF(这里的LoginF是name的值)然后找到
    <form-beans>
        <form-bean name="LoginF" type="com.LoginForm"></form-bean>
      </form-beans>
    从而找到LoginF映射的实例com.LoginForm 并对其实例化得到loginForm bean 的实例loginForm 然后调用 session.setAttribute("LoginF",LoginForm))将LoginForm 变成一个建立在session(session是scope的值,也是默认值)会话上以LoginF(setAttribute方法里的LoginF是attribute的值,我们平时不写attribute属性,因为默认该属性的值为name的值)为KEY的参数。