首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用getter方法访问数字中的属性的表达式

使用getter方法访问数字中的属性的表达式
EN

Stack Overflow用户
提问于 2012-09-04 16:40:07
回答 2查看 141关注 0票数 1

我的一个集成客户端提供了一个属性名为"_1","_2“的XML ...等等。

代码语言:javascript
复制
<element _1="attr1" _2="attr2">

使用JAXB生成类,属性的getter方法将是get1()和get2()

但是,在我的JSP页面中,使用JSTL和EL,我肯定不能通过

代码语言:javascript
复制
${variable.1}

如何使用EL正确访问该值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-04 17:30:39

使用此表示法:

代码语言:javascript
复制
${variable.["1"]}
票数 0
EN

Stack Overflow用户

发布于 2012-09-04 17:43:21

您可以使用外部绑定文件重命名由JAXB生成的属性:

schema.xsd

以下是基于您的帖子的示例XML模式:

代码语言:javascript
复制
<?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类。下面,我们将使用外部绑定文件来重命名生成的属性。

代码语言:javascript
复制
<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工具时如何引用绑定文件的示例。

代码语言:javascript
复制
xjc -b binding.xml schema.xsd

Element1

下面是生成的类的样子:

代码语言:javascript
复制
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;
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12259754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档