Struts:关于struts2中namespace和s:form action和form action 路径问题

控制科学与工程(自动化)保研经验【2】——南开、同济篇 禁止转载 1、南开人工智能学院夏令营   保研之旅第一个夏令营就是南开,南开夏令营非常早(6月份),当时我们专业仅有两人入营。夏令营前一天我们两个坐高铁来到了天津,几经辗转来到了南开的津南校区,非常偏僻。在自己找的酒店住了一晚,第二天一早去学院报到,资格审查、报销路费等等,然后开营仪式,吃饭,入住酒店,实验室参观。   开营仪式和实验室参观了解到,南开人工智能学院是国内第一批人工智能学院,和很多高... 阅读详情

一、假设建立一个action (引入的包省略)

ExampleAction.java

public class ExampleAction

{

public String userName;

public String execute(){

System.out.println("userName");

return "test";

}

public String getUserName() {
 return userName;
}
public void setUserName(String userName) {
 this.userName = userName;
}

 

}

二、struts.xml注册action,为了方便测试,取别名

//此处为有命名空间的

<package name="example" namespace="/example"
          extends="struts-default">
          
          <action name="A" class="ExampleAction">
              
              <result name="test">/test.jsp</result>
              
          </action>                  
</package>

//此处无命名空间

<package name="example2"           extends="struts-default">
          
          <action name="B" class="ExampleAction">
              
              <result name="test">/test.jsp</result>
              
          </action>                  
</package>

三、客户段建立 test.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
 
   <%
   
   System.out.println(request.getRemoteAddr());
   
   System.out.println(request.getRemoteHost());
   System.out.println(request.getServletPath());
   System.out.println(request.getRemotePort());
   System.out.println(request.getServerPort());
   System.out.println(request.getContextPath()); 
   String basePath=request.getScheme()+"://"+request.getRemoteAddr()+":"+request.getRemotePort()+request.getContextPath();
   %>
    
    
    <title>form多字段,多form</title>
    
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">    
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
  
  <body>


  <!-- 这个是没有命名空间的 -->
  <s:form action="B.action" > 
    用户姓名:<s:textfield name="userName" id="userName"></s:textfield>
  <s:submit value="提交"></s:submit>
  </s:form>


  <!-- 这个是有命名空间的 -->
  <s:form action="A"  namespace="/example"> 
  用户姓名:<s:textfield name="userName" id="userName"></s:textfield>
  <s:submit value="提交"></s:submit>
  </s:form>
  
  
  
  <!-- 这个普通form提交有命名空间的 -->
  <form action="<%=basePath%>A.action"  method="post" >
   用户姓名:<input name="userName">
  <input type="submit" value="tijiao">
  </form>


    <!-- 这个普通form提交无命名空间的 -->
  <form action="B.action"  method="post">
  用户Id:<input name="userId"/>
  用户姓名:<input name="userName">
  <input type="submit" value="tijiao">
  </form>
  <s:property value="userName"/>
    <br>
  </body>
</html>

 

如果用struts标签,且struts配置有命名空间,则<s:form>中也要注明namespace,并且提交的action类中无需家action后缀

如果用struts标签,且struts配置中无命名空间,则<s:form>无需注明namespace,提交的时候加上action类名和action后缀即可

如果是html方式的form提交,且struts配置中有命名空间,则action=“”中要注明提交路径(可以是相对路径,也可以是绝对路径)和action的名字。如我的 机子是127.0.0.1且http协议,端口8080,action类名为A,项目名为test,则提交为:http://172.0.0.1:8080/test/A.action

如果html方式的form提交,且struts没有配置没有命名空间,则直接提交action名字即可

相似贴子推荐:基于 LangChain4j + Milvus 的混合检索实战 本文提出了一种基于LangChain4j和Milvus的混合检索方案,用于解决论坛社区中的相似帖子推荐问题。该方案结合稠密向量语义检索和BM25关键词检索的优势,通过RRF算法实现结果融合。系统采用bge-small-zh模型生成语义向量,利用Milvus 2.5+原生支持的BM25功能和混合搜索API,在百万级数据规模下实现50ms内的检索延迟,召回率和精确率分别提升15%和22%。文章详细介绍了从数据预处理、向量化到混合检索的完整实现流程,并探讨了进阶优化方向,为推荐系统和RAG应用提供了高效解决方案。 阅读详情

相关推荐

晶体管的 栅极gate 材料选用 多晶硅polysilicon,并采用 自对准工艺 self-aligned IC后端版图 【VLSI】

本文为了解决为什么要使用多晶硅作栅极触点的问题,先介绍了MOS管的工作原理是通过栅极上所加的电压控制漏极与源极之间电流,然后解释了栅极的材料为什么选用多晶硅,然后介绍了晶体管里栅极的自对准工艺(Self-Aligned Gate )。

Jie_MSD的博客 1万+

使用IDEA学习Struts2框架 (二)Action与Form表单处理

1.    Action类Action类在MVC模式中发挥着控制器(Controller)的作用。Action类响应用户的动作,执行业务逻辑或调用其他类来执行业务逻辑,然后返回一个result用来告诉Struts应该呈现哪个视图。Struts2的Action类常常继承由Struts2框架提供的ActionSupport类,该类提供了一些常见动作的默认实现,如execute、input等,还实现了一...

MustangJy的博客 3680

MATLAB语言的并发编程

并发编程是指在同一程序中同时执行多个计算任务。通过将任务分解为较小的子任务,程序可以利用多核处理器的优势,提高计算效率。并发编程与并行编程密切相关,但不完全相同。并行编程强调任务的同时执行,而并发编程则侧重于任务的调度与管理,即使某些任务并没有同时执行。MATLAB的并发编程为数据分析、科学计算等应用提供了强大的支持。通过使用parforparfevalspmd等工具,用户可以轻松实现高效的并行计算。尽管MATLAB的并发编程工具相对简单易用,但在实际应用中仍需关注数据共享、通信、错误处理等问题。

2501_90485575的博客 365

sturts2之s:form标签与html之form标签访问struts2命名空间的区别

首先,看一个struts.xml的配置:<package name="default" namespace="" extends="struts-default"> <action name="HelloWorld" class="junit.LoginAction" method="display"> </action> <action name="validateTest

liuyouli2012的专栏 1466

CSP历年真题201503-1-图像旋转(C/C++)

一、问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 二、输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 三、输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 四、...

GTboy100的博客 1670

告别社区5级:一个脚本搞定小米/红米BL解锁的账号绑定限制(附资源下载与避坑指南)

本文提供了一种绕过小米/红米设备Bootloader解锁社区等级限制的技术方案,适用于MIUI 12.5-14和HyperOS 1.0系统。通过自动化脚本临时修改系统组件,用户可快速完成账号绑定和设备解锁流程,附详细操作指南和常见问题解决方案。

weixin_27330481的博客 734

<s:form action="login"...与<s:form action = "login.action"...的区别

1、它表示的是form id="login" name="login" action="/Action/login/login.action" method="post">因为它使用了struts标签,后面会自动加.action,而且namespace会起作用2.它表示的是form id="login" name="login" action="login.action"

雨中の洗澡 4440

PCB板Gerber文件的理解和制作

Gerber文件是PCB生产的关键文件,主要包括:1)走线层(GTL/GBL);2)阻焊层(GTS/GBS);3)丝印层(GTO/GBO);4)板框层(GMx/GKO);5)钢网层(Gtp/GBp);6)钻孔文件(NCdrillFiles)。其中1-10项和15项钻孔文件必须提供,建议包含11-14项辅助钻孔层。Gerber文件不含过孔属性,需提前在AD中设置过孔盖油。导出步骤包括:导出非机械层、机械层和钻孔层,新版AD可通过"文件->制造输出->GerberFiles"操作

qq_37999850的博客 854

访问WEB-INF目录下的jsp文件

大约两个小时的测试,终于对昨天的404问题有点一点眉目了。一般我们出于安全的考虑,会将jsp文件放在WEB-INF目录下,然后在外部通过index.jsp || index.html 链接进来。 最简单的方式就是,没错这是完美的解决方案。但问题也随之出来了,如果你/WEB-INF/content目录下的jsp文件中包含有Struts2的标签, 那么forward出来的页面中,form的acti

zhuyong0722的专栏 769

AMBA-CHI协议详解(十五)

Write transactions事务描述以及请求属性,cache line状态转换。

Crazzy_M的博客 651

lvgl 9虚拟键盘控件 (lv_keyboard) 使用指南

是 LittlevGL 提供的一个虚拟键盘控件,适用于在图形界面中输入文本。与按钮矩阵类似,虚拟键盘预定义了多个键位布局,支持多种模式和自定义键位映射,能够满足各种文本输入需求。通过与文本区域 (Text Area) 的结合,键盘能够自动将输入的字符传送到指定区域。控件是 LittlevGL 提供的强大虚拟键盘解决方案,适用于任何需要文本输入的界面。通过预定义的键盘模式、自定义键位映射和文本区域自动填充功能,可以大大提升用户输入体验。无论是在嵌入式系统的用户界面中,还是在其他需要虚拟键盘的应用中,

m0_62599305的博客 2186

Struts2中namespace的用法

Struts2中关于Action的namespace在很多地方出现,如struts.xml、form标签等等,有些莫名其妙的错误就是由于namespace设置错误造成的。如无法找到匹配的Action,访问不了result指定的页面等等。  namespace的作用是定义访问Action的url,在不同的namespace中可以定义同名的action,不同的包可以共享同一个namespace,可以

java学习开发 2548

Kile5报错—> ARM-Compiler ‘Default Compiler Version 5‘ which is not available安装使用Compiler Version 5 的办法

Kile5报错—> ARM-Compiler ‘Default Compiler Version 5‘ which is not available安装使用Compiler Version 5 的办法

weixin_72050316的博客 1189

发布Struts2工程打开action链接提示There is no Action mapped for namespace / and action name **解决方案

创建了一个struts2工程,发布到tomcat后,打开其中的action链接,出现There is no Action mapped for namespace / and action name **. - [unknown location] 。从错误信息可以看出是由于找不到对应的action map定义。查看工程struts.xml文件存在,并且配置正确。struts.xml文件是在s

imlmy的专栏 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Struts2的namespace

1.先说一个action配置文件里的namespace,看下例 package name="user" namespace="/user" extends="struts-default"&gt; &lt;action name="logon" class="cn.net.cipe.ots.user.actions.UserAction" method="l

dongruan00的专栏 172

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

struts2中namespace的用法(转贴)

Struts2中关于Action的namespace在很多地方出现,如struts.xml、form标签等等,有些莫名其妙的错误就是由于 namespace设置错误造成的。如无法找到匹配的Action,访问不了result指定的页面等等。 namespace的作用是定义访问Action的url,在不同的namespace中可以定义同名的action,不同的包可以共享同一个 names...

zlmarszl的专栏 185

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

struts package标签中的namespace

首先 namespace的作用是用来区分同名action  namespace=“” 里面的内容是用来在浏览器url中输入的。 1、什么是namespace? 在struts2里,namespace是package里的一个属性,用来标记action的访问路径。如下所示 [xhtml] view plaincopyprint? xml version="1.0" e

waj89757的专栏 1475

普通html中<form>标签和struts2中<s:form>标签action属性的不同

普通html中标签和struts2中标签action属性值不同到底有什么不同呢? 看个例子: 运用struts2标签 [code="java"] [/code] 运用html标签 [code="java"] [/code] 说明: user是struts2配置文件package标签的命名空间,paymentMsg是action的name属性值,searchPa...

fq17981314的博客 404

彻底解决警告: No configuration found for the specified action

彻底解决警告: No configuration found for the specified action

蜡笔小辛的专栏 4689

Struts 2安全漏洞深度解析:从OGNL注入到全生命周期防护实践

在Java Web开发领域,远程代码执行(RCE)和输入验证是核心的安全概念。其原理在于攻击者通过构造恶意输入,绕过应用程序的预期逻辑,从而执行未经授权的操作。这类漏洞的技术价值在于揭示了软件在动态特性与安全边界之间的根本矛盾,尤其在依赖表达式引擎、复杂配置的框架中风险凸显。应用场景广泛覆盖企业级Web应用、API服务及遗留系统维护。本文聚焦于Apache Struts 2框架,其历史高危漏洞(如S2-045)常源于OGNL表达式注入和默认配置缺陷,与F5 Nginx安全漏洞、MinIO CORS漏洞等共享

weixin_34110749的博客 483
上一篇: jsp中错误页面处理的跳转问题
下一篇: Floyd算法的理解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值