Struts中Action是怎么实现映射的 Struts中Action是怎么实现映射的想做一个关于通过action来决定调用哪个方法的类,想实现的很简单,比如action=new,就执行new()方法,action=save,就执行save()方法可是这个对我来说太难了,想不明白.怎么来映射关系,有了解的吗,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 struts2本身就是这种机制,如果楼主可以使用struts2的话就直接用strut2 就可以了。原理的话就是:系统启动时会读取struts.xml文件,将里面配置的method的name和class及result name、value读取到一个map数据结构中,收到客户端的请求,会产生一个action代理类,由代理类进行前期的拦截器处理,随后交给actionDispacher,该类去根据前面读取struts2.xml的map去反射到相应的方法中。如果楼主不使用struts2的话,可以封装一个继承HttpServlet的基类,在该基类中解析请求的URL,根据url中的action=new反射到子类的new 方法中就可以了。不过HttpServlet是单实例多线程的处理思想,楼主注意处理好同步的问题。 初学不久,不一定对,仅供参考. <action="new" class="YourClassName" method="new"> <result>/jsp/newSuccess.jsp</result> </action> <action="save" class="YourClassName" method="save"> <result>/jsp/saveSuccess.jsp</result> </action>newSuccess.jsp,saveSuccess.jsp是处理成功后转向的jsp. action的值决定走哪个方法不是用反射,用if else根据你传的方法名去调用相应的方法就OK了。而表单填的值经过struts2之后 对象里就有值了是用的放射,根据对象的属性名调用相应set方法。 struts用的是反射机制如果自己实现就不要这么麻烦了,直接写个filter即可..... struts.xml里文件配置<action name="information_*" method="{1}" class="action.InformationAction"> <result name="input">/WEB-INF/pages/addInformation.jsp</result> <result name="main" type="chain">main</result> <result name="edit">/WEB-INF/pages/editInformation.jsp</result> <result name="detail">/WEB-INF/pages/informationDetail.jsp</result> <result name="list">/WEB-INF/pages/informationList.jsp</result> <result type="chain">information_list</result> </action>pages文件夹里的实现JSP页面,表单form里调用相关action,如<s:form value="information_edit">action里的information_*预支相匹配,调用name=edit的result,进入editInformation.jsp页面,差不多是这样吧。。咳咳,我也是现学现卖 谁能介绍一些关于用java做服务器的代码 struts-config.xml中配置DataSource连sql server 问题 itext生成pdf报表问题 还是用尽了的ResultSet Hibernate问题 任何做和浏览器一样的前进后退按钮 急!! 急:关于struts(编辑页面)的困惑! JDBC驱动连不上SQL2000 关于 Parser html 的问题?高手请进?高分求救,分不够另加 微软的Java虚拟机支不支持含有JDBC(MySQL)的Applet? windows系统与打印相关消息捕捉 log4j日志文件中记录不到日志信息,求大神帮忙看看什么原因,十分感谢!
如果楼主不使用struts2的话,可以封装一个继承HttpServlet的基类,在该基类中解析请求的URL,根据url中的action=new反射到子类的new 方法中就可以了。不过HttpServlet是单实例多线程的处理思想,楼主注意处理好同步的问题。
<action="new" class="YourClassName" method="new">
<result>/jsp/newSuccess.jsp</result>
</action>
<action="save" class="YourClassName" method="save">
<result>/jsp/saveSuccess.jsp</result>
</action>newSuccess.jsp,saveSuccess.jsp是处理成功后转向的jsp.
如果自己实现就不要这么麻烦了,直接写个filter即可.....
<action name="information_*" method="{1}" class="action.InformationAction">
<result name="input">/WEB-INF/pages/addInformation.jsp</result>
<result name="main" type="chain">main</result>
<result name="edit">/WEB-INF/pages/editInformation.jsp</result>
<result name="detail">/WEB-INF/pages/informationDetail.jsp</result>
<result name="list">/WEB-INF/pages/informationList.jsp</result>
<result type="chain">information_list</result>
</action>
pages文件夹里的
实现JSP页面,表单form里调用相关action,如<s:form value="information_edit">
action里的information_*预支相匹配,调用name=edit的result,进入editInformation.jsp页面,差不多是这样吧。。咳咳,我也是现学现卖