Struts Action的execute方法不执行问题

2023-05-16

学习了SpringMVC,又想去探究一下Struts的奥秘,是否和SpringMVC有什么异同之处?


于是,动手编写了一个非常简单的demo程序,但是在写的过程中,发现页面提交的请求可以进到自己编写的action中,但就是不执行action的execute方法,搞了好久,还是没有办法解决。后来参考网上的一些资料,发现action中有两个execute重载方法,其中参数类型有所不同,不认真看的话,还真看不出有什么不同?


/**
* 参数 ServletRequest  ServletResponse
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
ServletRequest request, ServletResponse response) throws Exception {

// TODO Auto-generated method stub
return super.execute(mapping, form, request, response);

}



/**
* 参数多了Http 
* HttpServletRequest HttpServletResponse
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

//提交数据的页面 ActionForm
//把这些数据自动填充到ActionForm类的属性中
LoginForm loginForm = (LoginForm)form;
System.out.println(loginForm.getUsername());
if(loginForm.getUsername().equals("yang")){
return mapping.findForward("loginSuccess");
}else{
return mapping.findForward("loginFailure");
}
}


我们实际使用到的是第二个,谨记:重写第二个execute方法才能被执行。


以下是代码部分:

 struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
<form-beans>
<form-bean name="loginForm" type="action.LoginForm"></form-bean>
</form-beans>

<action-mappings>
<action path="/login" type="action.LoginAction" name="loginForm">
<forward name="loginSuccess" path="/LoginSuccess.jsp"></forward>
<forward name="loginFailure" path="/LoginFailure.jsp"></forward>
</action>
</action-mappings>
</struts-config>




  web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>strutsTest</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  
  <servlet>
<servlet-name>ActionServlet</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
     <param-name>config</param-name>
     <param-value>/WEB-INF/struts-config.xml</param-value>
   </init-param>
<load-on-startup>0</load-on-startup>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>ActionServlet</servlet-name>
  <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
</web-app>





jsp页面body部分

<body>
  <!-- 工程上下文 -->
    <form action="<%= request.getContextPath() %>/login.do" method="post">
    username:<input type="text" name="username"> <br>
    password:<input type="password" name="password"> <br>
    <input value="登录" type="submit" />
    </form>
  </body>





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts Action的execute方法不执行问题 的相关文章

随机推荐

  • Linux下安装、配置、启动Apache

    环境 Centos 6 5 64位操作系统 安装Apache前准备 xff1a 1 检查该环境中是否已经存在httpd服务的配置文件 xff0c 默认存储路径 xff1a etc httpd httpd conf xff08 这是cento
  • 我从来没有得到过你,却好像已经失去了你千万次。

    为什么从来没有得到的东西 xff0c 也会让人有一种失去的感觉 xff1f 如题 xff01 xff01
  • power yourself

    1 不要做繁琐的计划 2 远离魔鬼 躲避诱惑 3 保持早睡早起的习惯 4 记录自己的成长轨迹 5 选择性离开网络世界
  • 希望余生尽早开始

    我爱你在暖和的天气感冒 我爱你用一小时来点菜 我爱你皱着眉头看我 好像我是疯子一样 我爱跟你分别后 仍然萦绕不散的余香 我想在睡前和你聊天 我来这 并不是因为我寂寞 也不是因为今天是除夕 是因为发现 如果你想要与某人共度余生 那你就会希望余
  • 又一年--在深圳

    一晃再晃 xff1b 一拖再拖 xff1b 我还是独自一个人奋战 xff0c 在这座繁华都市 严重的错觉就是 xff0c 总以为自己不想加班 xff0c 却发现只有加班的日子才过的充实 xff0c 也许事不知道业余时间该干嘛 这一年 xff
  • Debian下安装配置fcitx

    本人新装Debian7 LXDE桌面 xff0c 下面介绍一下安装配置fcitx的步骤 在此之前 xff0c 需要先保证locale的中文支持 xff1a 1 locale a xff0c 得到若干语言编码组合 xff0c 其中需要有zh
  • ROS: catkin_make/catkin_make_isolated/catkin build/colcon的区别

    1 catkin make catkin make 是第一个构建catkin工作区的脚本 xff0c 因此在许多教程中使用 它有几个缺点 xff08 需要包中的非标准逻辑来声明跨包目标依赖关系 xff09 和限制 xff08 不能处理普通的
  • 关于Segmentation fault (core dumped)几个简单问题

    有的程序可以通过编译 xff0c 但在运行时会出现Segment fault 段错误 这通常都是指针错误引起的 但这不像编译错误一样会提示到文件一行 xff0c 而是没有任何信息 一种办法是用gdb的step 一步一步寻找 但要step一个
  • CUDA C 编程指南

    CUDA C Programming Guide CUDA C 编程指南 导读 田子宸 浙大水硕在读 184 人 赞同了该文章
  • 2014华为校招机试高级题——if语法中的括号判断

    http blog csdn net wy4649 article details 11725073 package com huawei job import java util ArrayList import java util Sc
  • MySQL插入数据时报错Cause: java.sql.SQLException: #HY000

    造成这个错误的原因是数据库中有字段要求不能为空 xff0c 但insert语句中没有提供该字段的数据
  • 操作系统经典书籍推荐

    推荐原则 xff1a 宁缺勿滥 xff0c 决不混进糟粕 好书不一定对所有人都合适 xff0c 但对于它的目标读者群来说 xff0c 一定是好书 选书原则 xff1a 有国外的 xff0c 不看国产的 有原版的 xff0c 不看翻译的 看大
  • 英特尔T265 通过Python API获得位置(姿态)数据

    如果你想在树莓派或者jetson nano等嵌入式设备上使用Python API获得T265的数据 xff0c 需要编译pyrealsense2 jetson nano的安装可以参考这篇文章 xff1a jetson nano 编译pyre
  • 英特尔 t265 保存地图 (Python API)

    保存地图 span class token keyword import span pyrealsense2 span class token keyword as span rs span class token keyword impo
  • 车辆控制知识总结(一):LQR算法

    目录 1 LQR简介 2 现代控制理论基础 2 1 状态空间描述 2 2 线性定常系统的状态空间描述框图 2 3 线性系统连续系统的反馈控制 2 31 全状态反馈控制器 3 LQR设计控制器的方法 3 1 什么是二次型 3 3 连续时间下的
  • VMware安装centos 8无法连接外网处理过程

    使用VMware安装centos 8之后发现火狐无法打开百度 xff0c 另外一台ubuntu的虚拟机却可以上百度 对比之后发现问题如下 unbuntu的网卡信息 xff1a centos 8的网卡信息 xff1a 这里很容易发现unbun
  • input输入框、select下拉框在安卓与ios上的兼容性问题

    一 input输入框 在平常做移动端项目时 xff0c 如果不注意的话 xff0c 在ios系统上经常会出现这种问题 xff0c 点击输入框 xff0c 输入框获取焦点 xff0c 此时 苹果手机页面会自动放大 xff0c 而安卓手机不会出
  • WSL2初体验之使用 docker版 Ubuntu 18.04,VNC远程控制

    一 前言 以前用 Oracle VM VirtualBox xff0c 玩 CentOS 7 xff0c 时不时就卡一些 xff0c 而且还不流畅 我喜欢平滑顺畅完美 xff1b 无意中发现了 windows WSL2发布了 xff0c 感
  • 友善串口调试助手

    友善串口调试助手是一款功能十分强大的串口调试工具 xff0c 该软件能够让用户自定义发送文本 保存数据 识别端口等 xff0c 而且还兼容多种Windows系统win10 win7 xp xff0c 能够支持常用的50 256000bps波
  • Struts Action的execute方法不执行问题

    学习了SpringMVC xff0c 又想去探究一下Struts的奥秘 xff0c 是否和SpringMVC有什么异同之处 xff1f 于是 xff0c 动手编写了一个非常简单的demo程序 xff0c 但是在写的过程中 xff0c 发现页