Sangram Anand
Sangram Anand

Reputation: 10844

How to retrieve data of the action class to its resulting jsp page

We are using Struts2 in our Java webapplication. There is a Member table(columns name, phoneno.etc.,) which is mapped to Address table(columns street, city, zipcode, country) using a mapped table MemberAddress(old code, no chance of changing the member table to add columns of address in it and remove Address table).

When a user want to edit the member profile, he clicks on settings, which directs him to the execute() method of action class. There am getting the address object with the logged in member id. something like the below code.

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;
}

if the result is Success, it directs to its results page, memberprofile.jsp, which contains input form fields. Here i want to display the existing profile details, including Address object instance variable i.e, street, city, zipcode. How should i get the Member object & Address object in the jsp page. I am trying

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

and enter its data in the jsp's input name fields like this.

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

but I am getting value="" in firebug. I thing am doing something wrong while retrieving the output.

Upvotes: 0

Views: 3389

Answers (2)

Umesh Awasthi
Umesh Awasthi

Reputation: 23587

Well Struts2 will make your life easy and it will take care of transferring your object from action to the ValuStack and all you need to play around with OGNL to get values from the Value-stack.

I believe you want to place the data in the newAddress object and want to retrieve its value in the respected JSP. All you need to define the property in your action class with getters and setters and let S2 fill the object and transfer it to your the valuestack.

All you need to access the property of the newAddress object in the ValueStack using OGNL like

<s:property name="addressStreet"/>

When the success result will send back from your action class S2 will place newAddress on the top of Value Stack and we have OGNL to access them.

Upvotes: 1

Dayananda
Dayananda

Reputation: 732

use the below code

<s:property value="#request.address.addressstreet"/>

Upvotes: 1

Related Questions