velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dimitrios Kolovos <dskolo...@gmail.com>
Subject Re: Velocimacro problem evaluating variable value
Date Mon, 11 Jul 2005 13:46:47 GMT
I was talking only about Velocity - I know that in Java this does not 
hold (that is why it provides the appropriate methods I guess :) ). I 
take it for granted that future releases of Velocity will keep 
supporting the handy == operator for Strings and therefore prefer to use 
it to keep my templates brief and clean.

Dimitrios

Steve O'Hara wrote:

>I appreciate that the Velocity parser is maybe creating the Java expression
>"this"=="this" but you're making an assumption, one that may not hold true
>forever.  It may well be evaluating this.toString()=="this"
>
>For this reason, you should NEVER compare strings using "==" and is a common
>Java newbie pitfall. This equality check is unreliable because it is
>comparing the object references, not their contents.
>
>In some cases it may give the desired result but in others it will not, so
>as a rule, you should use the methods provided - after all, why does the
>String object have an equals method if it didn't need it?
>
>Here are two articles explaining why you shouldn't use "==" for Strings;
>
>http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=58
>http://webhome.idirect.com/~mdevoy/ICS4MI/notes/notes%20java%20strings.htm
>
>
>-----Original Message-----
>From:
>velocity-user-return-16354-sohara=pivotal-solutions.co.uk@jakarta.apache
>.org
>[mailto:velocity-user-return-16354-sohara=pivotal-solutions.co.uk@jakart
>a.apache.org]On Behalf Of Dimitrios Kolovos
>Sent: 11 July 2005 13:10
>To: Velocity Users List
>Subject: Re: Velocimacro problem evaluating variable value
>
>
>== operator works fine for strings and offers a more compact syntax than
>equalsIgnoreCase
>
>Dimitrios
>
>Steve O'Hara wrote:
>
>  
>
>>Chris,
>>
>>Firstly, your HTML syntax is not correct (selected="selected") but also,
>>remember that the "==" causes an object compare - you should force a string
>>compare by using the following;
>>
>>#if($selected.equalsIgnoreCase("Dr")) selected #end
>>
>>Steve
>>
>>
>>-----Original Message-----
>>From:
>>velocity-user-return-16352-sohara=pivotal-solutions.co.uk@jakarta.apache
>>.org
>>[mailto:velocity-user-return-16352-sohara=pivotal-solutions.co.uk@jakart
>>a.apache.org]On Behalf Of Richard Dean
>>Sent: 11 July 2005 12:25
>>To: Velocity Users List
>>Subject: Re: Velocimacro problem evaluating variable value
>>
>>
>>Hi Chris,
>>
>>Think it might just be that you are missing an '=' sign :
>>
>>#if($selected == "Dr") selected = "selected" #end
>>rather than
>>
>>#if($selected = "Dr") selected= "selected" #end
>>
>>Richard
>>
>>On 7/11/05, Townson, Chris <C.Townson@nature.com> wrote:
>>
>>
>>    
>>
>>>Hi -
>>>
>>>In my VM_global_library, I have the following simple macro to create a
>>>drop-down list of name titles for HTML forms:
>>>
>>>#*
>>>* makeTitlesDropDown
>>>*
>>>* Macro to create a select + options drop-down list of name titles
>>>* Does not include a label for the select box, because we might want this
>>>elsewhere
>>>* Takes three parameters:
>>>* var STRING $id: value of the id for the select box
>>>* var STRING $name: value of the name attribute for the select box
>>>* var STRING $selected: the name title value to be set as pre-selected
>>>*#
>>>#macro ( makeTitlesDropDown $id $name $selected )
>>><select id="$id" name="$name">
>>><option value="Dr"#if($selected = "Dr")
>>>selected="selected"#end>Dr</option>
>>><option value="Prof"#if($selected = "Prof")
>>>selected="selected"#end>Prof</option>
>>><option value="Mr"#if($selected = "Mr")
>>>selected="selected"#end>Mr</option>
>>><option value="Mrs"#if($selected = "Mrs")
>>>selected="selected"#end>Mrs</option>
>>><option value="Miss"#if($selected = "Miss")
>>>selected="selected"#end>Miss</option>
>>><option value="Ms"#if($selected = "Ms")
>>>selected="selected"#end>Ms</option>
>>></select>
>>>#end
>>>
>>>I then call this with the following:
>>>#makeTitlesDropDown ( "title" "title" "Mr" )
>>>
>>>The select list comes out fine, except for the fact that the third
>>>parameter
>>>- which is used to pre-select a particular option - is not being picked up
>>>/
>>>evaluated as expected.
>>>
>>>Is there anything really obvious that I am doing wrong here?? :D
>>>
>>>Thanks,
>>>
>>>Chris
>>>
>>>
>>>
>>>
>>>
>>>      
>>>
>>***************************************************************************
>>    
>>
>*
>  
>
>>****
>>
>>
>>    
>>
>>>DISCLAIMER: This e-mail is confidential and should not be used by anyone
>>>who is
>>>not the original intended recipient. If you have received this e-mail in
>>>error
>>>please inform the sender and delete it from your mailbox or any other
>>>storage
>>>mechanism. Neither Macmillan Publishers Limited nor any of its agents
>>>accept
>>>liability for any statements made which are clearly the sender's own and
>>>not
>>>expressly made on behalf of Macmillan Publishers Limited or one of its
>>>agents.
>>>Please note that neither Macmillan Publishers Limited nor any of its
>>>agents
>>>accept any responsibility for viruses that may be contained in this e-mail
>>>or
>>>its attachments and it is your responsibility to scan the e-mail and
>>>attachments (if any). No contracts may be concluded on behalf of Macmillan
>>>Publishers Limited or its agents by means of e-mail communication.
>>>Macmillan
>>>Publishers Limited Registered in England and Wales with registered number
>>>785998
>>>Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS
>>>
>>>
>>>
>>>
>>>      
>>>
>>***************************************************************************
>>    
>>
>*
>  
>
>>****
>>
>>
>>    
>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>      
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>>
>>
>>
>>
>>    
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>
>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: velocity-user-help@jakarta.apache.org
>
>
>  
>

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


Mime
View raw message