You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Hoying, Ken" <Ke...@PremierInc.com> on 2007/05/30 15:40:17 UTC

[s2] If Test Conditions

I am having a devil of a time getting a simple if test condition to work
properly.  

Here is the jist of what I am trying to do:

<display:table id="idContract" name="contracts" class="results">
	<display:column 	titleKey="label.select">
		<s:if test="${idContract.status}=='NEW'">
			<s:checkbox name="selectedContracts"
fieldValue="${idContract.id}"/>
		</s:if>
		<s:else>
			&nbsp;${idContract.status}&nbsp;
		</s:else>
	</display:column>
	<display:column 	property="number"
titleKey="label.contractNumber" />
	<display:column 	property="status"
titleKey="label.contractStatus" />
	<display:column 	property="numAuthFacilities"
titleKey="label.authFacilities" />
</display:table>

I have tried the following and do not seem to be able to get any of them
to work:
"${idContract.status}=='NEW'"
'${idContract.status}=="NEW"'
"%{idContract.status}=='NEW'"
"${idContract.status=='NEW'}"
"%{idContract.status=='NEW'}"
"idContract.status=='NEW'"
"#idContract.status=='NEW'"

And a host of others that I cannot recall.

Does anyone happen to know the correct syntax?  I am getting tired of
guessing and cannot seem to make rhyme or reason out of the syntax rules
:-)

Thanks in advance!

-----------------------------------------
***Note:The information contained in this message may be privileged
and confidential and protected from disclosure. If the reader of
this message is not the intended recipient, or an employee or agent
responsible for delivering this message to the intended recipient,
you are hereby notified that any dissemination, distribution or
copying of this communication is strictly prohibited. If you have
received this communication in error, please notify the Sender
immediately by replying to the message and deleting it from your
computer. Thank you. Premier Inc.  

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


RE: [s2] If Test Conditions

Posted by "Hoying, Ken" <Ke...@PremierInc.com>.
I will give that a try.  I am sure it will work.  Thank you so much for
your clear and detailed response.  I now not only know what to do, but
more importantly why it needs to be done that way. Thank you!

 

-----Original Message-----
From: Jeromy Evans [mailto:jeromy.evans@blueskyminds.com.au] 
Sent: Wednesday, May 30, 2007 10:10 AM
To: Struts Users Mailing List
Subject: Re: [s2] If Test Conditions

The problem is that displaytag places the current row in the pageContext
but none of your expressions are addressing it.

I tend to just use JSTL within displaytag tables as its much easier to
access the current row.
I also tend to add getters to my bean to simplify the expressions
instead of hardcoding it in the JSP. eg. isNew()

Anyway, this is a struts2 way to access it:

<display:table id="idContract" name="contracts" class="results">
   <s:set name="rowIdContact" value="#attr.idContract"/>
      <display:column titleKey="label.select">
	<s:if test="#rowIdContact.equals('NEW')">
         	<s:checkbox name="selectedContracts"

etc. 
The main point of that is that the idContact row is accessed via #attr

But this is my preferred way:

<display:table id="idContract" name="contracts" class="results">
   <display:column titleKey="label.select">
      <c:if test="idContract.new">
       	<s:checkbox name="selectedContracts"

where isNew() is property of the row class.

Hoying, Ken wrote:
> I am having a devil of a time getting a simple if test condition to 
> work properly.
>
> Here is the jist of what I am trying to do:
>
> <display:table id="idContract" name="contracts" class="results">
> 	<display:column 	titleKey="label.select">
> 		<s:if test="${idContract.status}=='NEW'">
> 			<s:checkbox name="selectedContracts"
> fieldValue="${idContract.id}"/>
> 		</s:if>
> 		<s:else>
> 			&nbsp;${idContract.status}&nbsp;
> 		</s:else>
> 	</display:column>
> 	<display:column 	property="number"
> titleKey="label.contractNumber" />
> 	<display:column 	property="status"
> titleKey="label.contractStatus" />
> 	<display:column 	property="numAuthFacilities"
> titleKey="label.authFacilities" />
> </display:table>
>
> I have tried the following and do not seem to be able to get any of 
> them to work:
> "${idContract.status}=='NEW'"
> '${idContract.status}=="NEW"'
> "%{idContract.status}=='NEW'"
> "${idContract.status=='NEW'}"
> "%{idContract.status=='NEW'}"
> "idContract.status=='NEW'"
> "#idContract.status=='NEW'"
>
> And a host of others that I cannot recall.
>
> Does anyone happen to know the correct syntax?  I am getting tired of 
> guessing and cannot seem to make rhyme or reason out of the syntax 
> rules
> :-)
>
> Thanks in advance!
>
> -----------------------------------------
> ***Note:The information contained in this message may be privileged 
> and confidential and protected from disclosure. If the reader of this 
> message is not the intended recipient, or an employee or agent 
> responsible for delivering this message to the intended recipient, you

> are hereby notified that any dissemination, distribution or copying of

> this communication is strictly prohibited. If you have received this 
> communication in error, please notify the Sender immediately by 
> replying to the message and deleting it from your computer. Thank you.

> Premier Inc.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: [s2] If Test Conditions

Posted by Dave Newton <ne...@yahoo.com>.
--- Jeromy Evans wrote:
> The problem is that displaytag places the current
> row in the pageContext but none of your expressions 
> are addressing it.

Or it could be that ;)

Dave "Shouldn't answer questions about taglibs he
doesn't know" Newton



       
____________________________________________________________________________________Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online.
http://smallbusiness.yahoo.com/webhosting 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: [s2] If Test Conditions

Posted by Jeromy Evans <je...@blueskyminds.com.au>.
The problem is that displaytag places the current row in the pageContext 
but none of your expressions are addressing it.

I tend to just use JSTL within displaytag tables as its much easier to 
access the current row.
I also tend to add getters to my bean to simplify the expressions 
instead of hardcoding it in the JSP. eg. isNew()

Anyway, this is a struts2 way to access it:

<display:table id="idContract" name="contracts" class="results">
   <s:set name="rowIdContact" value="#attr.idContract"/>
      <display:column titleKey="label.select">
	<s:if test="#rowIdContact.equals('NEW')">
         	<s:checkbox name="selectedContracts"

etc. 
The main point of that is that the idContact row is accessed via #attr

But this is my preferred way:

<display:table id="idContract" name="contracts" class="results">
   <display:column titleKey="label.select">
      <c:if test="idContract.new">
       	<s:checkbox name="selectedContracts"

where isNew() is property of the row class.

Hoying, Ken wrote:
> I am having a devil of a time getting a simple if test condition to work
> properly.  
>
> Here is the jist of what I am trying to do:
>
> <display:table id="idContract" name="contracts" class="results">
> 	<display:column 	titleKey="label.select">
> 		<s:if test="${idContract.status}=='NEW'">
> 			<s:checkbox name="selectedContracts"
> fieldValue="${idContract.id}"/>
> 		</s:if>
> 		<s:else>
> 			&nbsp;${idContract.status}&nbsp;
> 		</s:else>
> 	</display:column>
> 	<display:column 	property="number"
> titleKey="label.contractNumber" />
> 	<display:column 	property="status"
> titleKey="label.contractStatus" />
> 	<display:column 	property="numAuthFacilities"
> titleKey="label.authFacilities" />
> </display:table>
>
> I have tried the following and do not seem to be able to get any of them
> to work:
> "${idContract.status}=='NEW'"
> '${idContract.status}=="NEW"'
> "%{idContract.status}=='NEW'"
> "${idContract.status=='NEW'}"
> "%{idContract.status=='NEW'}"
> "idContract.status=='NEW'"
> "#idContract.status=='NEW'"
>
> And a host of others that I cannot recall.
>
> Does anyone happen to know the correct syntax?  I am getting tired of
> guessing and cannot seem to make rhyme or reason out of the syntax rules
> :-)
>
> Thanks in advance!
>
> -----------------------------------------
> ***Note:The information contained in this message may be privileged
> and confidential and protected from disclosure. If the reader of
> this message is not the intended recipient, or an employee or agent
> responsible for delivering this message to the intended recipient,
> you are hereby notified that any dissemination, distribution or
> copying of this communication is strictly prohibited. If you have
> received this communication in error, please notify the Sender
> immediately by replying to the message and deleting it from your
> computer. Thank you. Premier Inc.  
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: [s2] If Test Conditions

Posted by Dave Newton <ne...@yahoo.com>.
--- "Hoying, Ken" <Ke...@PremierInc.com> wrote:
> "${idContract.status}=='NEW'"
> '${idContract.status}=="NEW"'
> "%{idContract.status}=='NEW'"

These close the OGNL expression too early.

> "${idContract.status=='NEW'}"
> "%{idContract.status=='NEW'}"
> "idContract.status=='NEW'"
> "#idContract.status=='NEW'"

As long as your action exposes 'idContract'
JavaBean-ily and the contract does the same for
'status' then

test="%{idContract.status == 'NEW'}"

should work (and you may not need the %{} bits; I
don't recall for this tag attribute).

d.



 
____________________________________________________________________________________
Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos.
http://autos.yahoo.com/new_cars.html 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org