我的一个集成客户端提供具有属性名称“_1”,“_2”...等的XML 使用JAXB生成类使用getter方法访问数字属性的表达式
<element _1="attr1" _2="attr2">
,属性的getter方法将GET1()和get2()
但是在我的JSP页面,使用JSTL和EL,确保我无法访问值通过
${variable.1}
如何正确使用EL访问值?
我的一个集成客户端提供具有属性名称“_1”,“_2”...等的XML 使用JAXB生成类使用getter方法访问数字属性的表达式
<element _1="attr1" _2="attr2">
,属性的getter方法将GET1()和get2()
但是在我的JSP页面,使用JSTL和EL,确保我无法访问值通过
${variable.1}
如何正确使用EL访问值?
使用这个符号:
${variable.["1"]}
你可以使用一个外部绑定文件重命名的属性生成的JAXB:
schema.xsd
下面是基于一个示例XML模式对你的帖子:
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org"
xmlns:tns="http://www.example.org"
elementFormDefault="qualified">
<element name="element1">
<complexType>
<attribute name="_1" type="string" />
<attribute name="_2" type="string" />
</complexType>
</element>
</schema>
binding.xml
外部绑定文件用于定制如何从XML模式生成Java类。下面我们将使用外部绑定文件来重命名生成的属性。
<jaxb:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
version="2.1">
<jaxb:bindings schemaLocation="schema.xsd">
<jaxb:bindings node="//xsd:attribute[@name='_1']">
<jaxb:property name="one"/>
</jaxb:bindings>
<jaxb:bindings node="//xsd:attribute[@name='_2']">
<jaxb:property name="two"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
XJC呼叫
下面是使用XJC工具时,您如何引用绑定文件的例子。
xjc -b binding.xml schema.xsd
部件1
下面是生成的类将是什么样子:
package forum12259754;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@XmlRootElement(name = "element1")
public class Element1 {
@XmlAttribute(name = "_1")
protected String one;
@XmlAttribute(name = "_2")
protected String two;
public String getOne() {
return one;
}
public void setOne(String value) {
this.one = value;
}
public String getTwo() {
return two;
}
public void setTwo(String value) {
this.two = value;
}
}
你试图访问通过'variable.1'价值? – sp00m
当然,JSP不会编译错误$ {variable.1}包含无效表达式: – Ivan