0

我们在 Java Web 应用程序中使用 Struts2。有一个成员表(列名,phoneno.etc.),它使用映射表成员地址(旧代码,没有机会更改成员表以添加列)映射到地址表(列街道,城市,邮政编码,国家)其中的地址并删除地址表)。

当用户想要编辑会员资料时,他点击设置,这会将他引导到操作类的 execute() 方法。正在获取具有登录成员 ID 的地址对象。类似于下面的代码。

protected String execute() throws Exception {

    Member loginMember = memberDAO.getLoggedInMember();
    memberId = loginMember.getId();
    if (StringUtils.isNotBlank(memberId)) {
        loginMember = memberDAO.getById(memberId);
        Memberaddress memberAddress =   
                      memberAddressDAO.getByMemberId(loginMember.getId());
        Address newAddress = null;
        if (memberAddress != null && memberAddress.getId() != null) {
            newAddress = addressDAO.getById(memberAddress.getId().getAddressid());
        } else {
            newAddress = new Address();
        }
    }
    return SUCCESS;
}

如果结果是 Success,它会定向到其结果页面 memberprofile.jsp,其中包含输入表单字段。在这里,我想显示现有的配置文件详细信息,包括地址对象实例变量,即街道、城市、邮政编码。我应该如何在 jsp 页面中获取成员对象和地址对象。我在尝试

<s:set var="address" value="newaddress"/>

并像这样在 jsp 的输入名称字段中输入其数据。

<input id="addressStreet" type="text"    
 value="<s:property value="#address.addressstreet" escape="false"/>"/>

但我在萤火虫中得到了 value="" 。我在检索输出时做错了什么。

4

2 回答 2

1

使用下面的代码

<s:property value="#request.address.addressstreet"/>
于 2012-04-30T08:00:56.380 回答
1

Struts2 将使您的生活变得轻松,它会负责将您的对象从动作转移到 ValuStack 以及您需要使用的所有东西以OGNL从 Value-stack 中获取值。

我相信您想将数据放在newAddress对象中,并希望在受尊重的JSP. 您只需要使用 getter 和 setter 在您的操作类中定义属性,然后让 S2 填充对象并将其传输到您的 valuestack。

您只需要newAddress使用 OGNL 访问 ValueStack 中的对象的属性,例如

<s:property name="addressStreet"/>

当成功结果从您的操作类发回时,S2 将放置newAddress在值堆栈的顶部,我们有 OGNL 访问它们。

于 2012-04-30T09:50:51.040 回答