[工作bug]c:import参数传递问题解析

一、起因:

  在项目的工厂中,由于某个界面根据产品种类显示的产品属性均不相同,所以决定将界面进行拆分,将每一个产品写入一个jsp界面,分别命名为product0.jsp、product1.jsp,在主界面根据产品id,分别用<c:import>标签引入对应的界面即可。

  这样做的好处是:将可变得界面进行解耦之后,如果增加一个产品,仅需增加一个界面即可,不会影响到其他界面的元素,便于横向扩展,减少了原来主界面的代码量,提升了维护性。

  因为引入界面时候,有一个参数需要传递到被引入界面,却引发了个小小的疑问,经过查找,最终解决了,此处记录解决经历,以备以后参考。

二、问题描述

  jsp界面中引入界面有:

  1、<c:import url="inlayingJsp.jsp"></c:import>

  2、<%@ include file="inlayingJsp.jsp" %>

  3、<jsp:include   page="inlayingJsp.jsp" flush="true"/>

  我的工作中,主要使用jstl进行编辑jsp界面,所以选择第一种。如果网被引入界面传递参数,第一反应是如下写法

<c:import url="inlayingJsp.jsp?opType=edit"></c:import>  

  可是在子界面以${opType},取值为空。

  怀疑是否没有传递过来,查了下标签的使用方法,将参数的传递方法改为

<c:import url="inlayingJsp.jsp">
    <c:param name="opType" value="edit"/>
</c:import> 

  这是标准的jstl的传递参数写法,但是很不幸,仍然无法取到值。

  接着研究了下标签,发现其他参数,比如var,可是尝试后还是不行。

  在网上看到有一篇文章,将百度引为子页,语法为:

<c:import url="https://www.baidu.com/s">
    <c:param name="wd" value="搜索内容"/>
</c:import> 

  试了下,子页不但显示了百度,而且确实进入了搜索界面。于是考虑之前子页获取参数的方法是否有误。

  试了下标准的jsp写法,可以正确获取到值:  

<%
    String opType=request.getParameter("opType");
    out.print(opType);
%>

  问题锁定为el表达式有问题,继续google之,正确写法为:

${param.opType}

三、结论

  问题其实很小,但也花了快一个小时,回想起来主要是一直使用jstl进行界面编写,缺乏对原生jsp的研究,以后要记得改进。

  

  

  

时间: 2024-08-09 21:56:15

[工作bug]c:import参数传递问题解析的相关文章

DNS基本工作原理、及正反向解析、主从同步

dns基本工作原理 1.客户端:互联网上提出域名查询请求的终端. 2.根域名服务器:在"域名树"的顶端,一次完整的域名查询请求的入口. 3.子域:域名树的上下层级关系,下级是上一级的子域.如:www.autohome.com.cn. 是autohome.com.cn. 的子域. 4.子域授权:上一级域名将子域的解析授予固定的服务器,这一过程为子域授权. 5.权威域名服务器:"域名树"中的每一级域名解析服务器都是权威域名服务器.这个概念是相对于本地域名解析服务器的.

DNS基本工作原理,及正反向解析和主从同步测试

DNS基本工作原理 及正反向解析和主从同步测试 域名系统DNS是一个分布式数据库,它在本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能. 一.基本工作原理 域名是分层次的.最顶部是根域:这一域上的信息驻留在从整个Internet中所选的一些根服务器上.在根域下面是顶级域,也就是国家代码或机构代码.国家代码的例子有SG(新加坡)和CA(加拿大)等;而机构代码则包括众所周知的COM(商业机

+++++++DNS基本工作原理、DNS正反向解析及主从同步

dns基础工作原理 bind Berkerley Information Name Domain DNS Domain Name Server TCP/UDP 53 UDP 53 无连接协议,域名解析 TCP 53 面向连接协议,区域传送 历史IANA 统一名字,自己hosts中维护(%windows%/system32/etc/hosts, /etc/hosts) 统一维护,定时任务计划 统一查询,glibc共享库作为客户端基于UDP协议解析域名 hash 数值分布式 域名分布式:授权方式,将

DNS简介、DNS工作原理、DNS正反向解析的搭建、DNS主从备份、DNS子域创建

一.DNS简介DNS 域名系统(Domain Name System)万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记让人头疼的一大串数字.根服务器:13组服务器负责DNS解析通过域名去查找ip地址的过程叫做域名解析通过ip地址去查找域名的过程叫做反向解析DNS协议运行在UDP协议之上,端口号53通常 Internet 主机域名的一般结构为树状结构:主机名.三级域名.二级域名.顶级域名. 二.DNS工作原理1.dns查询方式可分为递归查询和迭代查询递

随时随地管理bug——MadPecker小程序功能解析

目前,移动端BUG管理小程序已经上线,欢迎大家使用!直接在微信小程序中搜索"MadPecker"就可以直接使用啦~ 1.登录小程序登录时用的邮箱地址和密码和PC端的一致,而且登录一次之后,下次进入小程序直接进入项目界面,免去了重复登录的烦恼.2.处理BUGMadPecker小程序和PC端数据完全互通,在小程序上可以完成指派.完成.通过.不通过.关闭.再打开等操作.3.统计项目管理者可以在小程序上随时查看项目进度.项目成员工作进度等信息,十分方便. 原文地址:https://blog.5

测开之路一百二十五:flask之urlencode参数传递和解析

当get请求传参时,用?分隔参数和域名,用&分隔参数,如果参数里面本身就有&符号就会识别不出来,还是会当成分隔符,所以这些数据在传输的时候,就需要转义,现在普遍是转成urlencode编码:%20%xx%23 在jinja2模板里面,可以使用 data|urlencode 发送urlencode编码,而python里面又有urllib.parse.unquote()可以解析urlencode编码 视图函数 html:访问"/"返回html,在html上面点击超链接时请求

【接口参数解析BUG】SpringMVC接口参数解析

今天遇到一个BUG,前端传递数字数组时,后端使用字符串类型去接收,结果无法接收到,代码如下 问题: GET请求: 前端: configJsonArr:[1,2] 后端: private String configJsonArray; 后端将数组封装到字符串内,使用JsonArray去解析 最后发现问题所在,请求行(数组内无法传递数字,只能传递字符串) 解决方案: 最后修改为: 前端传递: configJsonArr:[“1”,“2”] 后端: private String configJsonA

dns基本工作原理,及正反向解析和主从同步

DNS协议( Domain Name Service)是一种应用层协议,基于tcp和udp的53端口,通过BIND(Bekerley Internat Name Domain)程序来实现.主要是通过udp无线传输协议,udp协议提供的是单向的协议,tcp是需要通过三次握手,所以使用udp可以减少DNS服务器的压力.DNS的查询类型主要有两种,递归查询即向服务器发送一次请求后,服务器断会寻找直到找到网址或者找不到,将最终的答案回馈给用户,而迭代查询是需要发送多次请求确认.解析的方式也有两种 NAM

将Lambda表达式作为参数传递并解析-在构造函数参数列表中使用Lambda表达式

public class DemoClass { /// <summary> /// 通过Lambda表达式,在构造函数中赋初始值 /// </summary> /// <param name="propertyFunc"></param> /// <param name="propertyValue"></param> public DemoClass (Expression<Func&