jsp和struts action的交互

基于JSP+Struts实现Web图片上传与下载功能的完整技术方案 htmltable {th, td {th {pre {简介:在Java Web开发中,JSP与Struts框架结合广泛用于构建动态、结构化的Web应用。本文详细讲解如何使用JSP和Struts技术实现图片的上传与下载功能,涵盖前端界面设计、文件处理、服务器存储、响应返回及安全控制等关键环节。通过Apache Commons FileUpload解析上传数据,利用MVC模式进行请求分发,并通过IO流实现文件的读取与下载响应。 阅读详情

一、jsp向action传值,jsp发送的方法

1、form表单提交的方法

<form action="login" method="post"name="form1">
 

用户名:<s:textfieldname="username"/><br/>
     密 码:<s:passwordname="password"/><br/>
                            <s:submit value="提交"/>
    </form>
2、href方法

<a href = "messageDelete.action?id=<%=msg.getId()%>">删除</a>


二、jsp向action传值,action接受的方法


1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数.
        private String username;
private String password;


public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

2.把表单传递过来的参数封装成一个类,然后调用其中的属性.
如,把login.jsp页面要传来的参数进行封装(例如:封装于Users 类)

private String username;
private String password;

public String getUsername() {
   return username;
}
public void setUsername(String username) {
   this.username = username;
}
public String getPassword() {
   return password;
}
public void setPassword(String password) {
   this.password = password;
}

然后再Action方法中,定义该类的对象就可以了,如

public class loginAction extends ActionSupport{
private Users users;
public Users getUsers(){
return users;
}
public void setUsers(Users users){
this.users=users;
}
}

通过这种方法传值,还必须在jsp页面做一下处理,login.jsp中from1的属性名应该改成这样:

登陆表单login.jsp:

<form action="login" method="post"name="form1">
   用户名:<s:textfieldname="users.username"/><br/>
     密 码:<s:passwordname="users.password"/><br/>
                            <s:submit value="提交"/>
    </form>

这种方法,在struts开发中是很常用的一种方法!
3.通过实现ModelDriven接口接收表单数据

首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法
public class loginAction extends ActionSupport implementsModelDriven<Users>{
private Users users =new Users();
public Users getModel(){
return users;
}
}
三、action传回jsp,jsp接受方法
1、在Action中通过调用session或者request对象的setAttirbute方法就可以了,然后jsp里去取。
           在action的java源文件中这么写
                ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
session.put("currentUser", user);
           在jsp页面中就可以通过session访问到user
                User user = (User)session.getAttribute("currentUser");
2、OGNL(转自http://struts2.group.iteye.com/group/wiki/1356-how-to-use-ognl-in-struts2)
OGNL是XWork引入的一个非常有效的数据处理的工具。我们已经了解了OGNL的基本操作和OGNL的内部结构,接下来,我们来看看XWork对OGNL做了什么样的加强,以及OGNL的体系在Struts2中如何运转。

从例子开始 Top

我们先从一个例子开始,看看数据在Struts2中是如何运转的。 

Java代码   收藏代码
  1. /** 
  2.  * @author Downpour 
  3.  */  
  4. public class User {  
  5.       
  6.     private Integer id;  
  7.       
  8.     private String name;  
  9.       
  10.     private Department department = new Department();  
  11.       
  12.         // setter and getters  
  13. }  
  14.   
  15. //=========================================================================  
  16.   
  17. /** 
  18.  * @author Downpour 
  19.  */  
  20. public class Department {  
  21.       
  22.     private Integer id;  
  23.       
  24.     private String name;  
  25.           
  26.         // setter and getters  
  27. }  
  28.   
  29. //=========================================================================  
  30.   
  31. <form method="post" action="/struts-example/ognl.action">  
  32.     user name: <input type="text" name="user.name" value="downpour" />  
  33.     department name: <input type="text" name="department.name" value="dev" />  
  34.     <input type="submit" value="submit" />  
  35. </form>  
  36.   
  37. //=========================================================================  
  38.   
  39. /** 
  40.  * @author Downpour 
  41.  */  
  42. public class OgnlAction extends ActionSupport {  
  43.   
  44.     private static final Log logger = LogFactory.getLog(OgnlAction.class);  
  45.   
  46.     private User user;  
  47.       
  48.     private Department department;  
  49.       
  50.     /* (non-Javadoc) 
  51.      * @see com.opensymphony.xwork2.ActionSupport#execute() 
  52.      */  
  53.     @Override  
  54.     public String execute() throws Exception {  
  55.         logger.info("user name:" + user.getName());   // -> downpour  
  56.         logger.info("department name:" + department.getName());   // -> dev  
  57.         return super.execute();  
  58.     }  
  59.   
  60.     // setter and getters  
  61. }  
  62.   
  63. //=========================================================================  
  64.   
  65. user name: <s:property value="user.name" />  
  66. department name: <s:property value="department.name" />  
  67.   
  68. //=========================================================================  


我们可以看到在JSP中,form中的元素input等,都使用OGNL的表达式作为name的值。而在form提交时,这些值都会被设置到Action中的Java对象中。而当Action转向到JSP时,Struts2的Tag又可以从Action的Java对象中,通过OGNL进行取值。 

在这里,你看不到任何的OGNL的代码级别操作,因为这些都在Struts2内部进行了封装。而这些封装,都是建立在OGNL的基本概念,也就是根对象和上下文环境之上。下面就分别就这两个方面分别进行讲解。

Struts2中使用OGNL进行计算 Top

取值计算 

有了上面的这些知识,我们就能非常容易的理解在Struts2中如何使用OGNL进行取值计算。 

提问:在Struts2中,如何使用自身的Tag读取Action中的变量? 

Struts2自身的Tag会根据value中的OGNL表达式,在ValueStack中寻找相应的对象。因为action在ValueStack的顶部,所以默认情况下,Struts2的Tag中的OGNL表达式将查找action中的变量。请注意,value中的内容直接是OGNL表达式,无需任何el的标签包装。 

例如:<s:property value="user.name" /> 

提问:在Struts2中,如何使用自身的Tag读取HttpServletRequest,HttpSession中的变量? 

在上面的知识中,我们知道,Struts2中OGNL的上下文环境中,包含request,session,application等servlet对象的Map封装。既然这些对象都在OGNL的上下文中,那么根据OGNL的基本知识,我们可以通过在表达式前面加上#符号来对这些变量的值进行访问。 

例如:<s:property value="%{#application.myApplicationAttribute}" /> 
<s:property value="%{#session.mySessionAttribute}" /> 
<s:property value="%{#request.myRequestAttribute}" /> 
<s:property value="%{#parameters.myParameter}" /> 

在这里啰嗦一句,在Tag的value中包括%{开头和}结尾的字符串,不知道Struts2为什么要做出这样的设置,从源码上看,它似乎没有什么特别额外的作用: 
Java代码   收藏代码
  1. if (value == null) {  
  2.             value = "top";  
  3.         }  
  4.         else if (altSyntax()) {  
  5.             // the same logic as with findValue(String)  
  6.             // if value start with %{ and end with }, just cut it off!  
  7.             if (value.startsWith("%{") && value.endsWith("}")) {  
  8.                 value = value.substring(2, value.length() - 1);  
  9.             }  
  10.         }  
  11.   
  12.         // exception: don't call findString(), since we don't want the  
  13.         //            expression parsed in this one case. it really  
  14.         //            doesn't make sense, in fact.  
  15.         actualValue = (String) getStack().findValue(value, String.class);  
  16.           
  17.         ......  
  18.   
  19. }  


有兴趣的朋友可以研究一下,这一对符号的原理究竟是什么。 

提问:在Struts2中,如何使用JSTL来读取Action中的变量?  

这是一个历史悠久的问题。因为事实上,很多朋友(包括我在内)是不使用Struts2自身的标签库,而是使用JSTL的,可能因为JSTL标签库比较少,简单易用的原因吧。 

我们知道,JSTL默认是从page,request,session,application这四个Scope逐次查找相应的EL表达式所对应的对象的值。那么如果要使用JSTL来读取Action中的变量,就需要把Action中的变量,放到request域中才行。所以,早在Webwork2.1.X的年代,我们会编写一个拦截器来做这个事情的。大致的原理是:在Action执行完返回之前,依次读取Action中的所有的变量,并依次调用request.setAttribute()来进行设置。具体的整合方式,请参考以下这篇文档: http://wiki.opensymphony.com/display/WW/Using+WebWork+and+XWork+with+JSP+2.0+and+JSTL+1.1  

不过随着时代的发展,上面的这种方式,已经不再被推荐使用了。(虽然如此,我们依然可以学习它的一个解决问题的思路)目前来说,自从Webwork2.2以后,包括Struts2,都使用另外一种整合方式:对HttpServletRequest进行装饰。让我们来看一下源码: 

Java代码   收藏代码
  1. public class StrutsRequestWrapper extends HttpServletRequestWrapper {  
  2.   
  3.     /** 
  4.      * The constructor 
  5.      * @param req The request 
  6.      */  
  7.     public StrutsRequestWrapper(HttpServletRequest req) {  
  8.         super(req);  
  9.     }  
  10.   
  11.     /** 
  12.      * Gets the object, looking in the value stack if not found 
  13.      * 
  14.      * @param s The attribute key 
  15.      */  
  16.     public Object getAttribute(String s) {  
  17.         if (s != null && s.startsWith("javax.servlet")) {  
  18.             // don't bother with the standard javax.servlet attributes, we can short-circuit this  
  19.             // see WW-953 and the forums post linked in that issue for more info  
  20.             return super.getAttribute(s);  
  21.         }  
  22.   
  23.         ActionContext ctx = ActionContext.getContext();  
  24.         Object attribute = super.getAttribute(s);  
  25.   
  26.         boolean alreadyIn = false;  
  27.         Boolean b = (Boolean) ctx.get("__requestWrapper.getAttribute");  
  28.         if (b != null) {  
  29.             alreadyIn = b.booleanValue();  
  30.         }  
  31.   
  32.         // note: we don't let # come through or else a request for  
  33.         // #attr.foo or #request.foo could cause an endless loop  
  34.         if (!alreadyIn && attribute == null && s.indexOf("#") == -1) {  
  35.             try {  
  36.                 // If not found, then try the ValueStack  
  37.                 ctx.put("__requestWrapper.getAttribute", Boolean.TRUE);  
  38.                 ValueStack stack = ctx.getValueStack();  
  39.                 if (stack != null) {  
  40.                     attribute = stack.findValue(s);  
  41.                 }  
  42.             } finally {  
  43.                 ctx.put("__requestWrapper.getAttribute", Boolean.FALSE);  
  44.             }  
  45.         }  
  46.         return attribute;  
  47.     }  
  48. }  


看到了嘛?这个类会在Struts2初始化的时候,替换HttpServletRequest,运行于整个Struts2的运行过程中,当我们试图调用request.getAttribute()的时候,就会执行上面的这个方法。(这是一个典型的装饰器模式)在执行上面的方法时,会首先调用HttpServletRequest中原本的request.getAttribute(),如果没有找到,它会继续到ValueStack中去查找,而action在ValueStack中,所以action中的变量通过OGNL表达式,就能找到对应的值了。 

在这里,在el表达式广泛使用的今天,JSTL1.1以后,也支持直接使用el表达式。注意与直接使用struts2的tag的区别,这里需要使用el的表示符号:${} 

例如:${user.name}, <c:out value="${department.name}" /> 

提问:在Struts2中,如何使用Freemarker等模板来读取Action中的变量以及HttpServletRequest和HttpSession中的变量?  

Freemarker等模板在Struts2中有对应的Result,而在这些Result中,Freemarker等模板会根据ValueStack和ActionContext中的内容,构造这些模板可识别的Model,从而使得模板可以以他们各自的语法对ValueStack和ActionContext中的内容进行读取。 

有关Freemarker对于变量的读取,可以参考Struts2的官方文档,非常详细: http://struts.apache.org/2.0.14/docs/freemarker.html  

设值计算  

Struts2中使用OGNL进行设值计算,就是指View层传递数据到Control层,并且能够设置到相应的Java对象中。这个过程从逻辑上说需要分成两步来完成: 

1. 对于每个请求,都建立一个与相应Action对应的ActionContext作为OGNL的上下文环境和ValueStack,并且把Action压入ValueStack 

2. 在请求进入Action代码前,通过某种通用的机制,搜集页面上传递过来的参数,并调用OGNL相关的代码,对Action进行设值。 

上面的第一个步骤,在处理URL请求时完成,而第二个步骤,则涉及到另外一个XWork的核心知识:拦截器。所以有关Struts2使用OGNL进行设值计算的详细分析,将会在拦截器章节具体给出。 

构建安全高效的JSP MySQL登录系统基于Struts2框架 本文还有配套的精品资源,点击获取 简介:JSP结合MySQL和Struts2框架,是开发Web应用的常见技术组合。本项目着重于实现用户登录功能,并涵盖前端验证、数据库操作、SQL注入防护、验证码实现、后端验证以及异常处理等关键知识点。通过这些实践,开发者可以构建出既安全又高效的企业级Web应用。 1. JSP与MySQL数据库交互 1.1 JSP与数据库交互... 阅读详情

相关推荐

谷歌Gemini模型免费API调用全攻略:从注册到实战(附代码示例)

本文详细介绍了如何免费调用谷歌Gemini模型的API,从注册获取API密钥到实战应用的全过程。内容涵盖环境准备、基础API调用、多模态处理、高级功能及生产环境实践,帮助开发者高效利用Gemini模型进行代码生成和复杂任务处理。附有代码示例,适合AI开发者和技术爱好者。

weixin_29212429的博客 1601

Jsp调用Action的几种方法

由于最近刚刚开始接触Spring+SpringMVC+mybatis的SSM框架来开发Web应用,页面使用的是Jsp。 所以经常会从Jsp页面调用到后端Java中Action类,因此希望总结一下,下次遇到类似问题不用再翻代码去查看: 1. 最常见的form表单提交: 一般情况下,比如在登陆界面,因为主要只涉及到登陆的功能,我们会使用form表单提交的方式来向后端Action传值以及跳转页面 ...

Wellven_chen的博客 3万+

RK3588 MIPI屏幕调试避坑指南:双通道8Lane下DSC压缩屏的花屏、分层问题排查实录

本文详细解析了RK3588平台在双通道8Lane MIPI接口下调试DSC压缩屏时遇到的花屏、分层问题。通过硬件信号完整性检查、软件配置验证及帧数据分析,提供了一套系统化的排查方法,并深入探讨了初始化序列优化和双通道同步机制,帮助工程师高效解决高分辨率屏幕显示异常问题。

weixin_27015733的博客 280

JSP、 Struts技术

第 2 章:Java Web开发简介作者:党海峰,孙霞    来源:希赛网    2014年03月14日 JSP技术 JSP的全称是JavaServer Pages,它是基于Java的动态页面技术,它可用于创建跨平台和跨Web服务器的动态网页。JSP是除Servlet之外的又一个Java Web开发的关键技术。 JSP也需要运行于JSP容器中,但是与S

在路上 1508

AD9361 LVDS数据接口时序解析与FPGA实现

本文详细解析了AD9361 LVDS数据接口的时序特性与FPGA实现方法,重点探讨了DATA_CLK、Rx_FRAME等关键信号的时序关系及数据拼接技巧。通过Verilog代码示例和调试经验分享,帮助开发者解决跨时钟域处理、IQ数据重组等常见问题,提升射频收发系统的稳定性与性能。

weixin_29186249的博客 128

Python实现稳态传热传质的偏微分方程求解

通过这种方法,我们可以求解更复杂的传热传质问题,并对系统的温度和浓度分布进行分析和优化。稳态传热传质是一个重要的工程问题,涉及到物质在空间中的分布以及热量和质量的传递。每次迭代中,我们使用上一次迭代的温度值来计算下一次迭代的温度值。该图显示了平板内部各点的温度分布,其中中心温度为T1,边界温度为T2。接下来,我们创建一个N x N的温度矩阵,并将边界条件初始化为边界温度T2。假设我们有一个矩形平板,其中心温度为T1,四个边界温度为T2。假设平板的长度为L,宽度为W,中心温度为T1,边界温度为T2。

HackDashX的博客 308

EL表达式

[b]EL 简介 [/b] EL 全名为Expression Language,它原本是JSTL 1.0为方便存取数据所自定义的语言。当时EL只能在JSTL 标签中使用,如下: 程序执行结果为10。但是你却不能直接在JSP 网页中使用: Hi ! ${ username } 到了JSP 2.0 之后,EL 已经正式纳入成为标准规范之一。因此,只要是支持Ser...

java博客海洋 247

小目标检测难题终结:YOLOv11 + 注意力机制,精度直接拉满

如果你在实操中遇到精度提升不明显或速度下降过多的问题,不妨尝试调整注意力模块的类型(如替换为CA)或插入层级,或针对性优化小目标的数据集增强策略。记住,小目标检测的核心是“特征强化与空间定位”,只要结合业务场景灵活调整注意力模块的组合,你也能让YOLOv11在小目标识别任务中脱颖而出。接下来,我们从模块选型到代码落地,一步步带你打造“小目标检测专精版”YOLOv11,真正帮你解决工业场景中(如安防、质检)的小目标识别痛点。在城市安防场景中,改进后的YOLOv11对远处行人、车辆(小目标)的识别准确率提升。

m0_64661770的博客 199

Struts + JSP 实现用户登录(一)

strut2实现用户登录流程图 项目结构 需要的jar 包 commons-fileupload-1.3.2.jar commons-io-2.4.jar commons-lang3-3.4.jar commons-logging-1.1.3.jar freemarker-2.3.23.jar javassist-3.20.0-GA.jar log4j-api-2.7.jar mysql-co...

qq_21344887的博客 3486

关于cefsharp访问iqiyi.com显示403 Forbidden解决办法(2种方法)

cefsharp不加UserAgent的默认值为 (注意126是当前cefsharp的版本)Edge浏览器的UserAgent 为 (edge的版本是128的)说明根据浏览器的不同,UserAgent可能不太一样。

无线智能模块 可视DIY智能专家 1319

【ComfyUI】VideoRefusion 动态替换视频背景

本文介绍了一个基于ComfyUI的视频背景替换工作流,通过WanVAE和WanTextEncoder核心模型实现人物与背景的智能分离与替换。工作流包含9个关键流程阶段,涉及视频采样、图像增强等节点操作,可生成风格统一、动作自然的视频效果。该技术适用于虚拟人物创作、短视频特效、产品广告等场景,支持个性化定制开发。相关资源可参考文末提供的ComfyUI教程和AIGC工具平台开发指南。(149字)

Mr数据杨 2189

struts框架Jsp与Action的交互

struts框架Jsp与Action的交互总结 一.Jsp→Action jsp传值 form表单 url action接收 request.getParameter(“param”) setter :action自动接收 直接传属性(uname、umima) 封装类(user[uname、umima]) Action类实现ModelDriven接口,同样把表...

mrhehe的博客 1456

DaVinci Developer和DaVinci Configurator:AutoSAR开发与配置工具

a. 组件创建:DaVinci Developer允许开发人员创建不同类型的AutoSAR软件组件,如应用软件组件(Application Software Component,SWC)、基础软件组件(Basic Software Component,BSWC)等。除了以上功能,DaVinci Developer和DaVinci Configurator还提供了丰富的文档和代码生成功能,以支持开发人员和配置人员进行文档编写、代码生成和文档浏览等任务。用户可以根据具体需求对软件组件进行灵活的配置。

HmoaAmp的博客 2262

jsp和struts 、action的交互

摘要 jsp和struts 、action的交互 == 一、jsp向action传值,jsp发送的方法 1、form表单提交的方法 jsp和struts 、action的交互 ==   一、jsp向action传值,jsp发送的方法 1、form表单提交的方法                      用户名:             密

javaqun的博客 505

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Struts框架配置Action和JSP的交互 如何在Action里面获取作用域

这里是通过jsp(请求)将jsp和Action交互。 通过接受url里面的xx.action拦截请求获取请求名xx。 struts> 插件定位视图资源的根路径。默认值为/WEB-INF/content 所以我们需要改 --> constant name="struts.convention.result.path" value="/" /> 指定Web应用的默认编码集,相当于调用Http

lz1012793721的博客 3245

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Struts2--JSP页面和Action的交互

变量值: 输出一个变量值到JSP页面写法:   dddd debug Struts2.0 页面参数   H 15:36:01 这句话是什么意思? mgrLevel这个变量在哪里来的呢? 李 15:36:25 呃。。。 后台action里面的 H 15:36:31 JSP页面好像没有申明 直接可以在JSP页面使用? 李 15:37:

Hurry的专栏 3332

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

flash与jsp,struts action交互

<br />    一直走Flash路线肯定会碰到一定的瓶颈。有时候Flash只是一个外表,事实也确实如此,我们必须给Flash一定的后台支持。现在后台程序又很多,这里我选择JSP。<br />   <br />    好了,先来讲讲最基本的基于http的数据传递方式,get和post。在JSP里,后台服务程序从URL中分析提取环境变量的方式为GET方式。POST方式则是作为一种标准的输入,来传递变量值得。GET方式在URL中传递的变量有一定的字符限制,而POST方式则没有。所以,在你决定选择用那种方式传递

zzzrlhzl的专栏 515

说说Action和Jsp页面交互的那些事

啰嗦 action与jsp握手 struts 31 action 32 模型驱动 33 值栈session 34 s标签 * 啰嗦        今天必须在台面上做一下批评(交给你们了)与自我批评。之前写博客,好像过于注重形式了,啰里啰嗦的。而且太过于注重写的博客是否可以让别人理解(表达上,非技术,小编仍是学习中的小鸟~),之后,小编要及时改正,重新审视了一下写博客

No body But u 2523

java和jsp交互 structs_jsp值传到后台Struts2中的action三种方法

Action接收表单传递过来的参数有3种方法:如,登陆表单login.jsp:1 用户名: 密 码: 1.在Action类中定义表单属性,两者属性名称必须一致。提供setter,getter方法。即可接收到表单传过来的参数. 这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。2.把表单传...

weixin_29887959的博客 316

正确优雅的解决用户退出问题——JSP和Struts解决方案

 摘要在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法。现在大部分浏览器上都有后退和前进按钮,允许用户后退或前进到一个页面。如果在用户在退出一个Web应用后按了后退按钮浏览器把缓存中的页面呈现给用户,这会使用户产生疑惑,他们会开始担心他们的个人数据是否安全。许多Web应用强迫用户退出时关闭整个浏览器,这样,

zaowei21的专栏 1319

Struts构架中action的跳转

<br /><br /><br /> 1. 完整的action<br /><br /><br /> type="somePackage.someActionClass"><br /> name="someForm"<br /> input="someJSP.jsp"<br /><br /><br /><br /> 首 先,Struts的ActionServlet接收到一个请求,然后根据struts-config.xml的配置定位到相应的mapping(映射); 接下来如果form的范围是req

SG的专栏 794

收藏:Struts开发技巧

原文地址:http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=15807&messageID=88568提交时间: 2004-9-13 18:19:55 作者: whx1977 在经历了《中国电信大客户贴心服务》项目的开发以及目前正在进行开发中的《中国电信总部经营分析》项目,累计了

tianxie的专栏 710

struts傻瓜式学习(一天篇)

struts傻瓜式学习(一天篇)leilongdan 原创  (参与分:217,专家分:250)   发表:2003-11-10 上午10:32   更新:2003-11-10 上午11:15   版本:1.0   阅读:2652次作者:林佩雯或许有人觉得struts不容易学,似乎里面的一些概念让未接触过的人迷惑,MVC1、MVC2、模式

wweijie的专栏 767

struts跳转html,Struts2框架里面action与前端jsp页面进行交互路径问题---》一个对话框里面有很多超链接,进行相应的跳转...

一个对话框里面有很多超链接,右边是点击超链接跳转到的相应页面(在一个页面上就相当于点击该超链接时候,就把该简短页面置顶);这个问题困扰我两天;还请大神给我解决,也没有解决,我仔细对比了相关路径,后面添加就成功了!!jsp相应路径不正确代码:1.因为这个是jsp页面,所以在访问时候就可以自动添加上相应的路径,如下图,结果不能访问,直接跳转到登录页面浏览器上显示路径是:2.在相应超链接前面添加获取该路...

weixin_36314050的博客 430
上一篇: jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签、struts2 action传值问题
下一篇: AC自动机通配符匹配
Benzema67
博客等级 码龄15年 120粉丝 357原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值