主要页面

Action:   LoginAction.java      //用于处理登陆这个事件

FromBean: LoginForm.java    //存储Login.jsp中传过来的表单内容

JSP:Login.jsp                       //登陆页面,提交到login.do

XML配置文件:struts-config.xml,web.xml

struts-config.xml配置文件:

 1 <struts-config> 2     <form-beans> 3         <form-bean name="loginForm" type="cn.strut.form.LoginForm" /> 4     </form-beans> 5     <action-mappings> 6         <action path="/login" type="cn.strut.action.LoginAction" name="loginForm"> 7  8             <forward name="LoginSuccess" path="/LoginSuccess.jsp"></forward> 9             <forward name="LoginFailure" path="/LoginFailure.jsp"></forward>10         </action>11     </action-mappings>12 </struts-config>

LoginAction.java

package cn.strut.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import cn.strut.form.LoginForm;public class LoginAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {// TODO Auto-generated method stubLoginForm Lf=(LoginForm)form;System.out.println(Lf.getUserName());       //每次都输出nullif("AgoniShao".equals(Lf.getUserName())){return mapping.findForward("LoginSuccess");}else{return mapping.findForward("LoginFailure");}}}

  

LoginForm.java

package cn.strut.form;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {private String UserName;private String PassWord;public String getUserName() {return UserName;}public void setUserName(String userName) {UserName = userName;}public String getPassWord() {return PassWord;}public void setPassWord(String passWord) {PassWord = passWord;}}

  

Login.jsp

<body><form action="<%=request.getContextPath() %>/login.do" method="post">UserName:<input type="text" name="UserName" /><br>PassWord:<input type="text" name="PassWord" /><br><input type="submit" value="OK"/></form></body>

  

web.xml

 1 <servlet> 2      <servlet-name>action</servlet-name> 3      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 4      <init-param> 5          <param-name>config</param-name> 6          <param-value>/WEB-INF/struts-config.xml</param-value> 7      </init-param> 8      <load-on-startup>0</load-on-startup> 9  </servlet>10  <servlet-mapping>11      <servlet-name>action</servlet-name>12      <url-pattern>*.do</url-pattern>13  </servlet-mapping>

已知在语法,拼写以及服务器配置方面都是对的,jar包什么的也都正确导入的,但是调试时候会发现无论怎样,运行到LoginAction的时候 LoginForm Lf=(LoginForm)form; 这里的Lf里东西都是空的,即Lf.getUserName()的值都是null 。

感兴趣的朋友可以想想这是什么原因。

转载于:https://www.cnblogs.com/cafebabe/archive/2011/09/25/2190463.html

初学Struts遇到的坑爹问题相关推荐

  1. 菜鸟学Struts——I18N对国际化的支持

    大家肯定都喜欢玩游戏吧. 对于是一个游戏迷的话,肯定玩过不少很棒的经典单机游戏.比方说,国产的<古墓丽影>.<刺客信条>.<鬼泣>国产的仙剑.古剑等.在众多游戏系列 ...

  2. 转]一个计算机专业学生几年的Java编程经验汇总

    1. 关于动态加载机制?? 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分.很多人都能背出来Java语言的特点,所谓的动态加载机制等等.当然概念往往是先记住而后消化的 ...

  3. ecshop使用php代码,ecshop 修改模板可输出php代码

    JSON 之 SuperObject(8): 关于乱码的几种情况 - 向 Henri Gourvest 大师报告 这几天学习 JSON - SuperObject, 非常幸运地得到了其作者 Henri ...

  4. JAVA是解释型语言还是编译型语言

    JAVA是解释型语言还是编译型语言 Under J2SE | 三月 10th, 2010 1 comment JAVA是解释型语言还是编译型语言 概念: 编译型语言:把做好的源程序全部编译成二进制代码 ...

  5. 一个同行对JAVA的理解

    想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路.说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提 ...

  6. 一个计算机专业学生几年的编程经验汇总[转]

    来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路.说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升 ...

  7. 一个计算机专业学生几年的编程经验汇总

    一个计算机专业学生几年的编程经验汇总 ================================================================================= ...

  8. Java的一些基础知识

    --   Java学习杂谈一   1. 关于动态加载机制--   学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分.很多人都能背出来Java语言的特点,所谓的动态加载机 ...

  9. 一个人总结的java编程经验汇总

    也是今天看博客的时候无疑中发现的,就看以几行就觉的不简单,发现很多转载的但是出自那里就不知道了.这里复制过来,提醒自己: 未来要走的路还很多很远,不能停下脚步.一定要keep moving. --MJ ...

最新文章

  1. c#+mysql 中文乱码
  2. Verilog中可综合与不可综合的语句
  3. PyTorch中AdaptiveAvgPool函数总结
  4. 函 float *search(float(*pointer)[4],int n)
  5. nginx 高并发配置参数(转载)
  6. poj 3104 Drying(二分查找)
  7. 做个全国一等奖的小车,其实不难(F题:智能送药小车方案分享)
  8. 计算机无法找到组件c0000135,电脑显示没有找到dwmapi.dll组件怎么办?计算机丢失dwmapi.dll的处理方法...
  9. 音乐在线播放Demo
  10. rdd分组聚合算子xxByKey,xxBy
  11. 三款免费实用的本地文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance)
  12. Mysql高级-day02
  13. 塔尔萨大学计算机科学专业,塔尔萨大学有哪些专业_专业排名(USNEWS美国大学排名)...
  14. 区块链研习 | 什么是IFO
  15. 七日杀服务器直连教程,七日杀连接服务器延迟几万 | 手游网游页游攻略大全
  16. 洛谷-3373 【模板】线段树 2
  17. python中文件的导入与导出
  18. 鉴于B站的代码粘贴没有全选功能,up在这里放上软件小妹的脚本代码
  19. 2021韩顺平图解linux
  20. 刚子扯谈:酒装狗熊胆

热门文章

  1. Spring Boot 整合Mybatis (一)
  2. 【leetcode】104. Maximum Depth of Binary Tree
  3. 基于用户投票的排名算法(一):Delicious和Hacker News
  4. Permissions for id_rsa are too open
  5. Java保留小数点一位的方法
  6. 搭建Spring MVC 4开发环境八步走
  7. LIMIT M,N分页性能优化方案
  8. 数据管理技术的发展过程
  9. php控制器教程,laravel基础教程 -- 控制器
  10. python爬取toefl_spark学习进度6-Python爬取数据的四个简单实例