功能描述:通过下拉框选择1-60的数字,显示所对应的头像。
原代码:
<SELECT name='selectimg' onChange="document.imghead.src='head/'+options[selectedIndex].value+'.jpg'">
<%for(int i=1;i<=60;i++){ %>
<option value='<%=i%>'><%=i%></option>
<%} %>
</SELECT>
<img src="head/1.jpg" name='imghead' width="80" height="90">现在要改成用struts2标签做,不可以出现<% %>代码片段,请问怎么写呢?

解决方案 »

  1.   

    <c:for 我记得有这个循环吧!呵呵呵!
      

  2.   

    JSTL 只有 <c:foreach /> 没有<c:for  ,它也是迭代的。现在要操作这个循环数目。
      

  3.   

    struts2里面用<s:iterator>实现循环,查查文档,很简单的
      

  4.   

    问题有那么简单就不会放上来。
    <s:select list="" 首先接收个集合对象,又放个<s:iterator>就乱套了。
      

  5.   

    那就不用<s:select>嘛 
    只用<s:iterator>
    用标签只是为了方便,你只是要1-60,何必自找麻烦去用<s:select>呢
      

  6.   

    <s:select id="ID" headerKey="0" headerValue="请选择" list="yourList" listKey="id" listValue="name" 
                  name="object.property" value="object.property" label="随便写" onChange="document.imghead.src='head/'+options[selectedIndex].value+'.jpg'" />yourList为你action里面定义的,它里面装的是object
      

  7.   

    LZ 我这里有本struts2.0的用法 其中有标签的使用 你要  可以传到你邮箱里面去
      

  8.   

    ^^!其实对Select组件操作!<s:select>当然比你<s:iterator>方便!!!日!
    <s:select list="testList" theme="simple"/>
    其中testList就是你的Action的1~60数字的list!
    如果你非得在页面得到list也可以!
    <s:select list="{1,2,3....30..,60}" theme="simple">
    个人建议你用ACTION得到!
      

  9.   

    真的方便么?
    是手写 list="{1,2,3....30..,60}" 这个方便?
    还是在 Action 里面写个循环得到List方便?个人感觉还是直接用<s:iterator>方便,因为需要的东西很简单,个人看法
      

  10.   

    <s:iterator>你就不用从action得到了吗?如果我在ACTION得到LIST!就这样的代码:<s:select list="testList" theme="simple"/> 
    而你还要:
    <select>
    <s:iterator value="testList" id="id">
    <option value="<s:property value="#id"/>"><s:property value="#id"/></option>
    <s:iterator>
    </select>
    谁方便???????
      

  11.   

    <select name='selectimg' onChange="document.imghead.src='head/'+options[selectedIndex].value+'.jpg'"> 
      <s:iterator status="stat" value="(60).{ #this }" >
        <option value="#stat.count"><s:property value="#stat.count" /></option>  
      </s:iterator>
    </select>不关Action的事~
      

  12.   

    试了下这样写也行,不过出来的是0-59,呵呵,应该能实现,自己研究研究吧,我米用过struts2~
       <s:select list="(60).{#this}"/>
      

  13.   

    如果你这个(60)*{#this}可以支持!
    我<s:select list="(60)*{#this}" theme="simple"/>应该比你简单拉!
      

  14.   

    该是总结的时候了:
    多谢以上各位高手的意见。
    改良后的写法是:
    <select name='selectimg' onChange="document.imghead.src='head/'+options[selectedIndex].value+'.jpg'"> <s:iterator status="stat" value="(60).{ #this }">
    <option value="<s:property value='#stat.count'/>">
    <s:property value="#stat.count" />
    </option>
    </s:iterator>
    </select><s:select 里面对onChange这样的写法不支持,所以只能用<select/> 学习了
      

  15.   

    有关循环的用法还可以这样用:
    <s:bean name="org.apache.struts2.util.Counter" id="counter">
       <s:param name="first" value="1" />
       <s:param name="last" value="10" />
       <s:iterator>
         counter:<s:property/>
       </s:iterator>
    </s:bean>
    代表从1循环到10
      

  16.   

    我也找了好久 发现这样才是最简单的<s:select list="(60).{#this+1}"/>