javaweb action无法跳转、表单无法跳转的解决方法

action无法跳转,表单无法跳转的解决方法

action无法跳转、表单无法跳转的原因:

说明 :在确保你项目的其它action、表单能正常跳转的情况下,查找以下3个原因。

1、确认action中有无写错,struts中有无指定action的class

如:<action name="*User" class="com.login.action.LoginAction" method="{1}">,如果后台java中没有这里class指定的路径,那么将无法跳转

2、表单有没有后缀,如指定后缀是action,则一定要配置  <url-pattern>*.action</url-pattern>或<url-pattern>/*</url-pattern>

3、form表单中的action是否能够与struts.xml里action的name匹配

如:jsp表单<form action="saveUser.action" id="infoForm"
method="post">,如果在struts.xml找不到<action name="*User" class=" ####  ">(这里的*User,*是通配符)或<action name="saveUser" class=" ####  ">,将无法跳转

jsp form表单中的action无法跳转

如果表单中action中没有后缀,使用   <url-pattern>*.action</url-pattern> 这种配置将无法跳转,因为匹配不了后缀名,

使用 <url-pattern>*.action</url-pattern> 时

如:

1、

<form action="saveChild.action" id="infoForm" method="post">  action有后缀名,这种能正常跳转

2、<form action="saveChild.action" id="infoForm"
method="post">  action没有后缀名,无法跳转

但如果使用   <url-pattern>/*</url-pattern> 在表单中即使action中没有后缀名,即<form action="saveChild" id="infoForm" method="post">,也能跳转

如果表单正常跳转,控制台应该会打印出这个方法,如:

2014-05-06 12:11:52,404 DEBUG (org.apache.struts2.interceptor.FileUploadInterceptor:68) - Bypassing //saveChild

2014-05-06 12:11:52,407 DEBUG (org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor:68) - Validating //saveChild with method save.

根据我自己的经验,如果控制台没有打印出“Bypassing // action名”,那么表单的action都是无法正常跳转到后台的

 <url-pattern>/*</url-pattern>

使用 <url-pattern>/*</url-pattern>这种会将servlet拦截了,如果项目中有单独创建的servlet,那么将无法访问这个servlet,如平时使用servlet创建一个验证码的链接

所以如果要使用验证码的servlet,那么就将使用以下这种配置了

<filter-mapping>

<filter-name>struts</filter-name>

<url-pattern>*.action</url-pattern>

<url-pattern>*.jsp</url-pattern>

</filter-mapping>

jsp访问时,无法访问

如果只定义了   <url-pattern>*.action</url-pattern>;而没有定义 <url-pattern>*.jsp</url-pattern>,那么jsp也将无法访问

一个通过测试的web.xml文件。没有给出web.xml文件头,因为包含了url,博客不准发url

<display-name>unionweb</display-name>

<!-- 监听器,整合spring中使用 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- spring的 applicationContext.xml文件存放路径,类路径-->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<!-- 以下是struts2的过滤器的配置 -->

<filter>

<filter-name>struts</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts</filter-name>

<!--

<url-pattern>/*</url-pattern>

-->

<url-pattern>*.action</url-pattern>

<url-pattern>*.jsp</url-pattern>

</filter-mapping>

<welcome-file-list>

<welcome-file>login.jsp</welcome-file>

</welcome-file-list>

说明:以上全部都是我自己经过测试的,如说的不对,还望大家指出

javaweb action无法跳转、表单无法跳转的解决方法

时间: 2024-10-12 02:19:45

javaweb action无法跳转、表单无法跳转的解决方法的相关文章

jQuery Validate 表单验证插件----自定义一个验证方法

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.引入依赖包 <script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script> <script src="lib/jquery.validate.js" type="text/javascript"

javaweb基础(14)_session防止表单重复提交

在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提交的常见应用场景 有如下的form.jsp页面 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML>

基于struts2 拦截器ResultType为chain的Action之间数据传递 ——表单页面打开优化

工作流所使用的表单页面使用freemarker设计,在发起或审批流程页面将表单作为一个iframe嵌入其中,实现如下: <iframe id="doJobframe" name="doJobframe" frameborder="0" scrolling="yes" height="100%" width="100%" style="padding: 0; margin-

JavaWeb之——使用Session防止表单重复提交(插曲)

  转载请注明出处:http://blog.csdn.net/l1028386804/article/details/45968185 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提交的场景 有如下的form.jsp页面 <%@ page language="java" import="java.util.*"

asp.net.mvc 中form表单提交控制器的2种方法和控制器接收页面提交数据的4种方法

MVC中表单form是怎样提交? 控制器Controller是怎样接收的? 1..cshtml 页面form提交 (1)普通方式的的提交 (2)特殊方式提交 2.控制器处理表单数据的四种方法 方法1:使用传统的Request请求数据 方法2:Action参数名与表单元素name值一一对应 方法3:从MVC封装的FormCollection容器中读取 方法4:使用实体作为Action参数传入,前提是提交的表单元素名称与实体属性名称一一对应 控制器源码 using MvcStudy.Models;u

jQuery实现form表单基于ajax无刷新提交方法详解

本文实例讲述了jQuery实现form表单基于ajax无刷新提交方法.分享给大家供大家参考,具体如下: 首先,新建Login.html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o

[PHP]防止表单重复提交的几种方法

--------------------------------------------------------------------------------------------------- 1. 使用JS让按钮在点击一次后禁用(disable).=> 防止多次点击发生,实现方式较简单. 缺点:若客户端禁止JavaScript脚本,则失效. 2. 在提交成功后执行页面重定向(redirect).=> 转到提交成功信息页面. 特点:避免F5重复提交,消除浏览器前进和后退按导致的同样问题.

避免表单重复提交的几种方法

表单重复提交是Web 应用中最常见.带来很多麻烦的一个问题,用户有时候会重复的点击提交按钮,会导致多次提交,产生重复数据, 那么如何避免Form表单多次提交呢?下面介绍防止表单重复提交的几种方法 一.有很多的应用场景都会遇到重复提交问题,比如: 1.点击提交按钮两次.2.点击刷新按钮.3.使用浏览器后退按钮重复之前的操作,导致重复提交表单.4.使用浏览器历史记录重复提交表单.5.浏览器重复的 HTTP 请求. 二.防止表单重复提交的方法 1.禁掉提交按钮 表单提交后使用 Javascript 使

防止表单重复提交的几种方法

表单重复提交是在多用户Web应用中最常见.带来很多麻烦的一个问题.有很多的应用场景都会遇到重复提交问题,比如: 1.点击提交按钮两次. 2.点击刷新按钮. 3.使用浏览器后退按钮重复之前的操作,导致重复提交表单. 4.使用浏览器历史记录重复提交表单. 5.浏览器重复的HTTP请求. 防止表单重复提交的几种方法 1.禁掉提交按钮. 表单提交后使用Javascript使提交按钮disable.这种方法防止心急的用户多次点击按钮. 2.Post/Redirect/Get模式. 在提交后执行页面重定向,