1)springmvc的入口是一个servlet,即前端控制器,例如:action
struts2入口是一个filter过虑器,即前端过滤器,例如:/
2)springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例
struts2是基于类开发,传递参数是通过类的属性,只能设计为多例
3)springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成
modelandview对象,最后又将模型数据通过request对象传输到页面
struts采用值栈存储请求和响应的数据,通过ognl存取数据
VLOOKUP在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。在 VLOOKUP 中的 V 代表垂直。语法VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value 为需要在数组第一列中查找的数值。LOOKUP_value 可以为数值、引用或文本字符串。Table_array 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或数据清单。如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。Table_array 的第一列中的数值可以为文本、数字或逻辑值。文本不区分大小写。Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。说明如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A 示例 查找密度为109的 粘度是多少 ,返回值195
终于解决你的问题了。因为OGNL和JSTL表达式不能嵌套使用,我的解决方法是使用JSP的自定义标签。下面是我自己写的JSP标签代码(放在/WEB-INF/tags目录下):
<%@ tag pageEncoding="UTF-8"%>
<%@ attribute name="username"%>
<%@ attribute name="name1"%>
<%
String str="SELECTED";
String username=(String)requestgetAttribute("username");
String name1=(String)requestgetAttribute("name1");
if(usernameequals(name1)){
%>
<%outprint(str);%>
<%}%>
下面是测试页面的代码:
<%@ page language="java" contentType="text/html; charset=GBK"%>
<!-- 引入自定义标签和struts2标签 -->
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags"%>
主体代码为:
<select name="pname">
<s:iterator value="#attrpnames" status="st" id="name1">
<option <tags:iterator username="${username}" name1="${name1}"/>
value=<s:property value="#stcount" />>
<s:property value="name1" />
</option>
</s:iterator>
</select>
属性名我用的username即是你说的在后台定义pname。下面是我测试结果的页面代码:
<html>
<head>
<title>欢迎</title>
</head>
<body>
<select name="pname">
<option value=1>
qqq
</option>
<option value=2>
aaaaaaa
</option>
<option value=3>
bbbbbbb
</option>
<option SELECTED value=4>
ddddddd
</option>
<option value=5>
ccccccc
</option>
</select>
</body>
</html>
上面实现在IE6中测试成功,但是在Firefox中测试不成功,页面代码依然是上面代码,但是firefox不自动选择默认项
以上就是关于如何在项目中看出用的是struts1还是用的struts2全部的内容,包括:如何在项目中看出用的是struts1还是用的struts2、ognlexpressionevaluator怎么使用、求jsp中OGNL表达式,select标签的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)