Java jsp el中点运算符和括号之间的差异
我有一节课:Java jsp el中点运算符和括号之间的差异,java,jsp,jstl,el,Java,Jsp,Jstl,El,我有一节课: public class MyClass{ String name; Map map; int [] arrInt; //get set } 我创建对象: MyClass mc = new MyClass (); 在jsp中,我可以编写这样的代码: ${mc.name} 它和 ${mc["name"]} 点运算符和括号运算符之间存在差异?它们的含义完全相同。点样式通常更容易阅读。如果索引将由表达式(例如mc[name]而不是mc[name])给出,则
public class MyClass{
String name;
Map map;
int [] arrInt;
//get set
}
我创建对象:
MyClass mc = new MyClass ();
在jsp中,我可以编写这样的代码:
${mc.name}
它和
${mc["name"]}
点运算符和括号运算符之间存在差异?它们的含义完全相同。点样式通常更容易阅读。如果索引将由表达式(例如mc[name]而不是mc[name])给出,则需要括号样式。它们的含义完全相同。点样式通常更容易阅读。如果索引将由一个表达式(例如mc[name]而不是mc[name])给出,则需要括号样式。当您处理组时,您当前的场景是可以的,但是[]符号确实有帮助 JSTL表达式语言为访问对象及其属性提供了一种简单的机制。圆点。运算符用于遍历对象层次结构和访问属性。以下代码片段演示了点运算符用法的基本示例: 在本例中,点运算符用于访问customer对象的address属性,然后访问address对象的city属性。表达式中的点运算符的每个实例都计算为运算符左侧属性的getter方法调用。因此,第一个点将调用customer对象上的getAddress方法。然后,第二个点将对从getAddress调用返回的对象调用getCity方法。为了使点操作符工作,操作符右侧的对象必须对操作符左侧的属性具有getter方法。否则,操作员将失败。 如您所见,这种遍历对象层次结构的方法既快速又简单。如果没有JSTL,您必须使用类似于以下内容的JSP表达式来访问层次结构中的属性:
<%= customer.getAddress().getCity() %>
点运算符非常适合访问简单属性;但是,它不允许您访问数组或集合的元素。为此,JSTL具有方括号[]运算符。方括号操作符允许您指定要访问的元素的索引,如下所示:
<c:set var="highBid" value="${bids[0]}"/>
<c:set var="color" value="${param['color']}"/>
这种方法适用于数组和基于列表的集合。对于基于地图的集合,可以为要访问的元素指定键,如下所示:
<c:set var="highBid" value="${bids[0]}"/>
<c:set var="color" value="${param['color']}"/>
您当前的场景是可以的,但是当您处理组时,[]符号确实有帮助 JSTL表达式语言为访问对象及其属性提供了一种简单的机制。圆点。运算符用于遍历对象层次结构和访问属性。以下代码片段演示了点运算符用法的基本示例: 在本例中,点运算符用于访问customer对象的address属性,然后访问address对象的city属性。表达式中的点运算符的每个实例都计算为运算符左侧属性的getter方法调用。因此,第一个点将调用customer对象上的getAddress方法。然后,第二个点将对从getAddress调用返回的对象调用getCity方法。为了使点操作符工作,操作符右侧的对象必须对操作符左侧的属性具有getter方法。否则,操作员将失败。 如您所见,这种遍历对象层次结构的方法既快速又简单。如果没有JSTL,您必须使用类似于以下内容的JSP表达式来访问层次结构中的属性:
<%= customer.getAddress().getCity() %>
点运算符非常适合访问简单属性;但是,它不允许您访问数组或集合的元素。为此,JSTL具有方括号[]运算符。方括号操作符允许您指定要访问的元素的索引,如下所示:
<c:set var="highBid" value="${bids[0]}"/>
<c:set var="color" value="${param['color']}"/>
这种方法适用于数组和基于列表的集合。对于基于地图的集合,可以为要访问的元素指定键,如下所示:
<c:set var="highBid" value="${bids[0]}"/>
<c:set var="color" value="${param['color']}"/>
${person.age}看起来比${person[age]}简单,但第二条语句有一些优点
使用点运算符时,左侧的对象只能是地图
或者一个Bean,右边的东西必须遵循java编码
命名的标准。但是使用[],左边的东西可以
也可以是列表或数组。这意味着右边的东西可以是
不符合Java命名规则的编号或标识符
例:
1.你可以用
${mapObject[com.electron.name]}
但不是
二,。也可以通过使用[]使用嵌套表达式,如
数组[array2[array3[0]]${person.age}看起来比${person[age]}简单,但第二个语句有一些优点
使用点运算符时,左侧的对象只能是地图
或者一个Bean,右边的东西必须遵循java编码
命名的标准。但是使用[],左边的东西可以
也可以是列表或数组。这意味着右边的东西可以是
号码还是身份证
不符合Java命名规则的entifier
例:
1.你可以用
${mapObject[com.electron.name]}
但不是
二,。也可以通过使用[]使用嵌套表达式,如
数组[array2[array3[0]]]如果是一组对象,则为非真。请确定为真。如果键是表达式,则必须使用[]语法“组”在EL中不是一个定义良好的术语。在对象组中不是真的。肯定是真的。如果键是表达式,则必须使用[]语法“组”在EL中不是一个定义明确的术语。