You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by mahanare <ma...@gmail.com> on 2009/03/25 13:26:54 UTC
Struts 2 Type conversion
Hi, I need help in resolving type conversion issue in struts 2.
Here is my problem definition.
I have a structs 2 action class called AuditTrailAction.
Here is the class definition. It contains a List<AuditView> I have given my
AuditView bean definition below.
Action contains a List which intern contains a bean containing a Map of
another bean.
I need to display this data into a tabular structure in jsp page.
List<AuditView>, each AuditView bean contains Map<Auditproperty> and
AuditProperty bean contains couple of properties.
for each AuditView bean in the list, I need to iterate through all the
AuditProperty beans and display their properties into a row (html table
row).
I have been spending time whole day today with no luck. it looks like there
is some type conversion issue here. I went through
http://struts.apache.org/2.x/docs/type-conversion.html, but not getting a
solution for my scenario which looks little complex.
Please help me!
Thanks
harinath
public class AuditTrailAction extends ActionSupport implements RequestAware
{
private List<AuditView> results;
private int pageSize = 20;
private int page;
private AuditLogDao auditLog;
private Map request;
private String entity;
private String pk;
private List<String> columnLabels;
public List<String> getColumnLabels() {
return columnLabels;
}
public void setColumnLabels(List<String> columnLabels) {
this.columnLabels = columnLabels;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getEntity() {
return entity;
}
public void setEntity(String entity) {
this.entity = entity;
}
public String getPk() {
return pk;
}
public void setPk(String pk) {
this.pk = pk;
}
public void setAuditLog(AuditLogDao auditLog) {
this.auditLog = auditLog;
}
public List<AuditView> getResults() {
return results;
}
public void setResults(List<AuditView> results) {
this.results = results;
}
public String execute() {
try {
results = auditLog.getAuditTrialView(page, pageSize, entity, pk);
columnLabels = new ArrayList<String>();
if (results != null && results.size() != 0) {
AuditView view = results.get(0);
Map<String, AuditProperty> mapProperties = view.getPropertyList();
Set<String> properties = mapProperties.keySet();
for (String prop : properties) {
columnLabels.add(prop);
}
}
} catch (AuditException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
/*
* try {
*
* results =auditLog.getAuditTrialInfo(page, pageSize); //
* request.put("results", results); } catch (AuditException e) { // TODO
* Auto-generated catch block e.printStackTrace(); }
*/
return SUCCESS;
}
public void setRequest(Map<String, Object> request) {
// TODO Auto-generated method stub
this.request = request;
}
}
@SuppressWarnings("serial")
public class AuditView implements Serializable {
private Map<String,AuditProperty> propertyList;// = new
ArrayList<AuditProperty>();
public Map<String, AuditProperty> getPropertyList() {
if(propertyList ==null)
{
propertyList = new HashMap<String, AuditProperty>();
}
return propertyList;
}
public void setPropertyList(Map<String, AuditProperty> propertyList) {
this.propertyList = propertyList;
}
}
And AuditProperty bean
*/
@SuppressWarnings("serial")
public class AuditProperty implements Serializable {
private static final Log logger = LogFactory.getLog(AuditProperty.class);
private String oldValue;
private String newValue;
private boolean updateFlag;
public boolean isUpdateFlag() {
return updateFlag;
}
public void setUpdateFlag(boolean updateFlag) {
this.updateFlag = updateFlag;
}
public String getOldValue() {
return oldValue;
}
public void setOldValue(String oldValue) {
this.oldValue = oldValue;
}
public String getNewValue() {
return newValue;
}
public void setNewValue(String newValue) {
this.newValue = newValue;
}
public String toString()
{
String value= oldValue + " : " + newValue + " : " + updateFlag;
logger.debug(value);
return value;
}
--
View this message in context: http://www.nabble.com/Struts-2-Type-conversion-tp22700624p22700624.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts 2 Type conversion
Posted by dusty <du...@yahoo.com>.
Seems like you have it down. Why is it kind of? It is only a really type
conversion issue if you need to reconstruct the graph of Map>Bean>List from
a string posted from a web page.
mahanare wrote:
>
> kind of got a fix.
>
> here is my jsp content.
>
> <tr>
> <s:iterator value="columnLabels" var="label">
> <th><s:property value='label' /></th>
> </s:iterator>
> </tr>
> <s:iterator value="results" var="auditViewBean" >
>
> <tr>
> <s:iterator value="propertyList" var="auditProperty">
> <s:set var="keyName" value="key"></s:set>
> <s:iterator value="columnLabels" var="label1">
>
> <s:if test= "%{#label1== #keyName}" >
> <td><s:property value="value.newValue" /></td>
> </s:if>
> </s:iterator>
> </s:iterator>
>
> </tr>
> </s:iterator>
>
>
>
>
> mahanare wrote:
>>
>> Hi, I need help in resolving type conversion issue in struts 2.
>>
>> Here is my problem definition.
>>
>> I have a structs 2 action class called AuditTrailAction.
>> Here is the class definition. It contains a List<AuditView> I have given
>> my AuditView bean definition below.
>>
>> Action contains a List which intern contains a bean containing a Map of
>> another bean.
>>
>> I need to display this data into a tabular structure in jsp page.
>>
>> List<AuditView>, each AuditView bean contains Map<Auditproperty> and
>> AuditProperty bean contains couple of properties.
>>
>> for each AuditView bean in the list, I need to iterate through all the
>> AuditProperty beans and display their properties into a row (html table
>> row).
>>
>> I have been spending time whole day today with no luck. it looks like
>> there is some type conversion issue here. I went through
>> http://struts.apache.org/2.x/docs/type-conversion.html, but not getting a
>> solution for my scenario which looks little complex.
>>
>> Please help me!
>> Thanks
>> harinath
>>
>>
>>
>> public class AuditTrailAction extends ActionSupport implements
>> RequestAware {
>> private List<AuditView> results;
>> private int pageSize = 20;
>> private int page;
>> private AuditLogDao auditLog;
>> private Map request;
>> private String entity;
>> private String pk;
>> private List<String> columnLabels;
>>
>> public List<String> getColumnLabels() {
>> return columnLabels;
>> }
>>
>> public void setColumnLabels(List<String> columnLabels) {
>> this.columnLabels = columnLabels;
>> }
>>
>> public int getPage() {
>> return page;
>> }
>>
>> public void setPage(int page) {
>> this.page = page;
>> }
>>
>> public String getEntity() {
>> return entity;
>> }
>>
>> public void setEntity(String entity) {
>> this.entity = entity;
>> }
>>
>> public String getPk() {
>> return pk;
>> }
>>
>> public void setPk(String pk) {
>> this.pk = pk;
>> }
>>
>> public void setAuditLog(AuditLogDao auditLog) {
>> this.auditLog = auditLog;
>> }
>>
>> public List<AuditView> getResults() {
>> return results;
>> }
>>
>> public void setResults(List<AuditView> results) {
>> this.results = results;
>> }
>>
>> public String execute() {
>>
>> try {
>> results = auditLog.getAuditTrialView(page, pageSize, entity, pk);
>> columnLabels = new ArrayList<String>();
>>
>> if (results != null && results.size() != 0) {
>> AuditView view = results.get(0);
>> Map<String, AuditProperty> mapProperties = view.getPropertyList();
>> Set<String> properties = mapProperties.keySet();
>> for (String prop : properties) {
>> columnLabels.add(prop);
>> }
>> }
>> } catch (AuditException e) {
>> e.printStackTrace();
>> } catch (Exception e) {
>> e.printStackTrace();
>> }
>>
>> /*
>> * try {
>> *
>> * results =auditLog.getAuditTrialInfo(page, pageSize); //
>> * request.put("results", results); } catch (AuditException e) { //
>> TODO
>> * Auto-generated catch block e.printStackTrace(); }
>> */
>> return SUCCESS;
>>
>> }
>>
>> public void setRequest(Map<String, Object> request) {
>> // TODO Auto-generated method stub
>> this.request = request;
>> }
>>
>> }
>>
>>
>>
>> @SuppressWarnings("serial")
>> public class AuditView implements Serializable {
>>
>> private Map<String,AuditProperty> propertyList;// = new
>> ArrayList<AuditProperty>();
>>
>> public Map<String, AuditProperty> getPropertyList() {
>> if(propertyList ==null)
>> {
>> propertyList = new HashMap<String, AuditProperty>();
>> }
>> return propertyList;
>> }
>>
>> public void setPropertyList(Map<String, AuditProperty> propertyList) {
>> this.propertyList = propertyList;
>> }
>>
>> }
>>
>> And AuditProperty bean
>>
>> */
>> @SuppressWarnings("serial")
>> public class AuditProperty implements Serializable {
>>
>> private static final Log logger =
>> LogFactory.getLog(AuditProperty.class);
>> private String oldValue;
>> private String newValue;
>> private boolean updateFlag;
>>
>>
>>
>> public boolean isUpdateFlag() {
>> return updateFlag;
>> }
>> public void setUpdateFlag(boolean updateFlag) {
>> this.updateFlag = updateFlag;
>> }
>> public String getOldValue() {
>> return oldValue;
>>
>> }
>> public void setOldValue(String oldValue) {
>> this.oldValue = oldValue;
>> }
>> public String getNewValue() {
>> return newValue;
>> }
>> public void setNewValue(String newValue) {
>> this.newValue = newValue;
>> }
>> public String toString()
>> {
>> String value= oldValue + " : " + newValue + " : " + updateFlag;
>> logger.debug(value);
>> return value;
>> }
>>
>
>
--
View this message in context: http://www.nabble.com/Struts-2-Type-conversion-tp22700624p22713820.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: Struts 2 Type conversion
Posted by mahanare <ma...@gmail.com>.
kind of got a fix.
here is my jsp content.
<tr>
<s:iterator value="columnLabels" var="label">
<th><s:property value='label' /></th>
</s:iterator>
</tr>
<s:iterator value="results" var="auditViewBean" >
<tr>
<s:iterator value="propertyList" var="auditProperty">
<s:set var="keyName" value="key"></s:set>
<s:iterator value="columnLabels" var="label1">
<s:if test= "%{#label1== #keyName}" >
<td><s:property value="value.newValue" /></td>
</s:if>
</s:iterator>
</s:iterator>
</tr>
</s:iterator>
mahanare wrote:
>
> Hi, I need help in resolving type conversion issue in struts 2.
>
> Here is my problem definition.
>
> I have a structs 2 action class called AuditTrailAction.
> Here is the class definition. It contains a List<AuditView> I have given
> my AuditView bean definition below.
>
> Action contains a List which intern contains a bean containing a Map of
> another bean.
>
> I need to display this data into a tabular structure in jsp page.
>
> List<AuditView>, each AuditView bean contains Map<Auditproperty> and
> AuditProperty bean contains couple of properties.
>
> for each AuditView bean in the list, I need to iterate through all the
> AuditProperty beans and display their properties into a row (html table
> row).
>
> I have been spending time whole day today with no luck. it looks like
> there is some type conversion issue here. I went through
> http://struts.apache.org/2.x/docs/type-conversion.html, but not getting a
> solution for my scenario which looks little complex.
>
> Please help me!
> Thanks
> harinath
>
>
>
> public class AuditTrailAction extends ActionSupport implements
> RequestAware {
> private List<AuditView> results;
> private int pageSize = 20;
> private int page;
> private AuditLogDao auditLog;
> private Map request;
> private String entity;
> private String pk;
> private List<String> columnLabels;
>
> public List<String> getColumnLabels() {
> return columnLabels;
> }
>
> public void setColumnLabels(List<String> columnLabels) {
> this.columnLabels = columnLabels;
> }
>
> public int getPage() {
> return page;
> }
>
> public void setPage(int page) {
> this.page = page;
> }
>
> public String getEntity() {
> return entity;
> }
>
> public void setEntity(String entity) {
> this.entity = entity;
> }
>
> public String getPk() {
> return pk;
> }
>
> public void setPk(String pk) {
> this.pk = pk;
> }
>
> public void setAuditLog(AuditLogDao auditLog) {
> this.auditLog = auditLog;
> }
>
> public List<AuditView> getResults() {
> return results;
> }
>
> public void setResults(List<AuditView> results) {
> this.results = results;
> }
>
> public String execute() {
>
> try {
> results = auditLog.getAuditTrialView(page, pageSize, entity, pk);
> columnLabels = new ArrayList<String>();
>
> if (results != null && results.size() != 0) {
> AuditView view = results.get(0);
> Map<String, AuditProperty> mapProperties = view.getPropertyList();
> Set<String> properties = mapProperties.keySet();
> for (String prop : properties) {
> columnLabels.add(prop);
> }
> }
> } catch (AuditException e) {
> e.printStackTrace();
> } catch (Exception e) {
> e.printStackTrace();
> }
>
> /*
> * try {
> *
> * results =auditLog.getAuditTrialInfo(page, pageSize); //
> * request.put("results", results); } catch (AuditException e) { // TODO
> * Auto-generated catch block e.printStackTrace(); }
> */
> return SUCCESS;
>
> }
>
> public void setRequest(Map<String, Object> request) {
> // TODO Auto-generated method stub
> this.request = request;
> }
>
> }
>
>
>
> @SuppressWarnings("serial")
> public class AuditView implements Serializable {
>
> private Map<String,AuditProperty> propertyList;// = new
> ArrayList<AuditProperty>();
>
> public Map<String, AuditProperty> getPropertyList() {
> if(propertyList ==null)
> {
> propertyList = new HashMap<String, AuditProperty>();
> }
> return propertyList;
> }
>
> public void setPropertyList(Map<String, AuditProperty> propertyList) {
> this.propertyList = propertyList;
> }
>
> }
>
> And AuditProperty bean
>
> */
> @SuppressWarnings("serial")
> public class AuditProperty implements Serializable {
>
> private static final Log logger = LogFactory.getLog(AuditProperty.class);
> private String oldValue;
> private String newValue;
> private boolean updateFlag;
>
>
>
> public boolean isUpdateFlag() {
> return updateFlag;
> }
> public void setUpdateFlag(boolean updateFlag) {
> this.updateFlag = updateFlag;
> }
> public String getOldValue() {
> return oldValue;
>
> }
> public void setOldValue(String oldValue) {
> this.oldValue = oldValue;
> }
> public String getNewValue() {
> return newValue;
> }
> public void setNewValue(String newValue) {
> this.newValue = newValue;
> }
> public String toString()
> {
> String value= oldValue + " : " + newValue + " : " + updateFlag;
> logger.debug(value);
> return value;
> }
>
--
View this message in context: http://www.nabble.com/Struts-2-Type-conversion-tp22700624p22703515.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org