Essentially, he is saying you can rewrite your doStartTag method to be something like:
private List _states = null;
public int doStartTag() throws JspException {
if (_states == null) {
_states = new java.util.ArrayList();
_states.add(new com.ubspw.cdd.common.LabelValueBean("-Select One-", ""));
_states.add(new com.ubspw.cdd.common.LabelValueBean("AK","AK"));
_states.add(new com.ubspw.cdd.common.LabelValueBean("AL","AL"));
_states.add(new com.ubspw.cdd.common.LabelValueBean("AR","AR"));
...
...
}
pageContext.setAttribute("selectStates", _states);
return (EVAL_BODY_INCLUDE);
}
this way, "states" will only be set up the first time doStartTag is called.
---
- Nayan Hajratwala
- Chikli Consulting LLC
- http://www.chikli.com
-----Original Message-----
From: Smith, Johnathan M. [mailto:[EMAIL PROTECTED]]
Sent: Thursday, September 26, 2002 9:14 AM
To: 'Struts Users Mailing List'
Cc: '[EMAIL PROTECTED]'
Subject: RE: Need Help Fast
Can you please send me a sample of a better way
-----Original Message-----
From: Ville Peurala [mailto:
Sent: Thursday, September 26, 2002 8:26 AM
To: Struts Users Mailing List
Subject: RE: Need Help Fast
Hello,
One possible solution:
Put the ArrayList in application context and put a check in doStartTag()'s
beginning to determine whether the list of states can be found in
application context.
Instead of:
pageContext.setAttribute("selectStates", states);
Put it like this:
pageContext.setAttribute("selectStates", states,
PageContext.APPLICATION_SCOPE);
And in the beginning of doStartTag():
Object o = pageContext.getAttribute("selectStates",
PageContext.APPLICATION_SCOPE);
if (o == null) { ...do what your current code does...
}
else { ...do nothing... }
But why do this in a tag at all? If your list of states never changes, you
might as well initialize it in an init() method somewhere.
T: Ville Peurala
-----Original Message-----
From: Smith, Johnathan M. [mailto:[EMAIL PROTECTED]]
Sent: 26. syyskuuta 2002 15:13
To: 'Struts Users Mailing List'
Subject: Need Help Fast
This is not really a struts question but I am using struts a maybe someone
can help. I system has allot of state dropdown's so I I made a tag for the
programmers to insert into the JSP pages.
The Tag builds a ArrayList with the states in it and then saves the states
as a attribute in the pageContext. But I don't know if this is the best way
to do it. Is it anyway to tell this code only to run one time and then stay
in member?
Below is my sample code: Please help me out
public int doStartTag() throws JspException {
java.util.ArrayList states = new java.util.ArrayList();
states.add(new com.ubspw.cdd.common.LabelValueBean("-Select
One-", ""));
states.add(new com.ubspw.cdd.common.LabelValueBean("AK",
"AK"));
states.add(new com.ubspw.cdd.common.LabelValueBean("AL",
"AL"));
states.add(new com.ubspw.cdd.common.LabelValueBean("AR",
"AR"));
states.add(new com.ubspw.cdd.common.LabelValueBean("AZ",
"AZ"));
states.add(new com.ubspw.cdd.common.LabelValueBean("CA",
"CA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("CO",
"CO"));
states.add(new com.ubspw.cdd.common.LabelValueBean("CT",
"CT"));
states.add(new com.ubspw.cdd.common.LabelValueBean("DC",
"DC"));
states.add(new com.ubspw.cdd.common.LabelValueBean("DE",
"DE"));
states.add(new com.ubspw.cdd.common.LabelValueBean("FL",
"FL"));
states.add(new com.ubspw.cdd.common.LabelValueBean("GA",
"GA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("HI",
"HI"));
states.add(new com.ubspw.cdd.common.LabelValueBean("IA",
"IA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("ID",
"ID"));
states.add(new com.ubspw.cdd.common.LabelValueBean("IL",
"IL"));
states.add(new com.ubspw.cdd.common.LabelValueBean("IN",
"IN"));
states.add(new com.ubspw.cdd.common.LabelValueBean("KS",
"KS"));
states.add(new com.ubspw.cdd.common.LabelValueBean("KY",
"KY"));
states.add(new com.ubspw.cdd.common.LabelValueBean("LA",
"LA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MA",
"MA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MD",
"MD"));
states.add(new com.ubspw.cdd.common.LabelValueBean("ME",
"ME"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MI",
"MI"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MN",
"MN"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MO",
"MO"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MS",
"MS"));
states.add(new com.ubspw.cdd.common.LabelValueBean("MT",
"MT"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NC",
"NC"));
states.add(new com.ubspw.cdd.common.LabelValueBean("ND",
"ND"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NE",
"NE"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NH",
"NH"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NJ",
"NJ"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NM",
"NM"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NV",
"NV"));
states.add(new com.ubspw.cdd.common.LabelValueBean("NY",
"NY"));
states.add(new com.ubspw.cdd.common.LabelValueBean("OH",
"OH"));
states.add(new com.ubspw.cdd.common.LabelValueBean("OK",
"OK"));
states.add(new com.ubspw.cdd.common.LabelValueBean("OR",
"OR"));
states.add(new com.ubspw.cdd.common.LabelValueBean("PA",
"PA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("PR",
"PR"));
states.add(new com.ubspw.cdd.common.LabelValueBean("RI",
"RI"));
states.add(new com.ubspw.cdd.common.LabelValueBean("SC",
"SC"));
states.add(new com.ubspw.cdd.common.LabelValueBean("SD",
"SD"));
states.add(new com.ubspw.cdd.common.LabelValueBean("TN",
"TN"));
states.add(new com.ubspw.cdd.common.LabelValueBean("TX",
"TX"));
states.add(new com.ubspw.cdd.common.LabelValueBean("UT",
"UT"));
states.add(new com.ubspw.cdd.common.LabelValueBean("VA",
"VA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("VI",
"VI"));
states.add(new com.ubspw.cdd.common.LabelValueBean("VT",
"VT"));
states.add(new com.ubspw.cdd.common.LabelValueBean("WA",
"WA"));
states.add(new com.ubspw.cdd.common.LabelValueBean("WI",
"WI"));
states.add(new com.ubspw.cdd.common.LabelValueBean("WV",
"WV"));
states.add(new com.ubspw.cdd.common.LabelValueBean("WY",
"WY"));
pageContext.setAttribute("selectStates", states);
return (EVAL_BODY_INCLUDE);
}
--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>