0 0

struts2中<s:select>标签只能输出显示值,隐藏的value值出不来,内附详情5

原本没有学习struts2时,下拉列表框是用一个集合保存,然后放到作用域,在页面上使用<c:foreach>循环输出,这样没问题:
后台java代码

private List<Street> streetList;
public List<Street> getStreetList() {
    return streetList;
}
public void setStreetList(List<Street> streetList) {
    this.streetList = streetList;
}
在方法中为list赋值:
streetList = new StreetBizImpl().getList();

 

页面上使用foreach正常输出,有显示值,也有隐藏值

<select>
    <c:forEach items="${streetList }" var="s">
    <option value="${s.sid }">${s.name }</option>
    </c:forEach>
</select>

 


但问题来了,使用struts2的ognl表达式就挂了:

<s:select list="streetList"  listValue="name" listKey="sid"></s:select>

如果不加入listKey就没关系。


报500错误:
org.apache.jasper.JasperException: Error on line 63, column 15 in template/simple/select.ftl
stack.findString(parameters.listKey) is undefined.
It cannot be assigned to itemKeyStr - Class: freemarker.core.Assignment
File: Assignment.java
Method: accept
Line: 111 - freemarker/core/Assignment.java:111:-1
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164)
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275)
org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
web.interceptor.UserInterceptor.doIntercept(UserInterceptor.java:16)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)


求大神指导,我实在找不出哪里的错了,我说下我想到过的点:①原本sid叫id,我怕是id重名过多,但改成sid还是不行。②项目编译不是最新的,我把项目导出→删除→导入,再次编译运行,还是不行。③可能是架包存在问题,但是我把架包删除完整重新放入了一边,还是不行。④我实在没辙了,在此求大神,我用的是Eclipse。现在只用了hibernate+struts2

 

2014年12月03日 18:52

2个答案 按时间排序 按投票排序

0 0

Street 对象有 getSid()方法么?

2014年12月04日 13:51
0 0

sid里面是否有Null值?

2014年12月04日 13:09

相关推荐

    struts2 标签库 帮助文档

    4. &lt;s:push value=""&gt;&lt;/s:push&gt;-----value的值push到栈中,从而使property标签的能够获取value的属性 R: 1. 2. &lt;s:radio list=""&gt;&lt;/s:radio&gt;-----单选按钮 3. &lt;s:reset&gt;&lt;/s:reset&gt;-----重置按钮 S: 1...

    struts2中#号的用法

    如果对象是当前页面的,则要使用# 1. &lt;s:bean id="locales" name="com.turorial.Locales" &gt;...&lt;/s:bean&gt; &lt;s:property value="#locales"/&gt;

    jsp 开发之struts2中s:select标签的使用

    jsp 开发之struts2中s:select标签的使用 1.第一个例子: &lt;s list={ theme=simple headerKey=00 headerValue=00&gt;&lt;/s&gt; 2.第二个例子: &lt;s list=#{1: label=abc listKey=key listValue=value headerKey=0 headerValue...

    Java Oracle分页处理

    document.write("&lt;option value="+i+"&gt;"+i+"&lt;/option&gt;"); document.forms[0].pagetype.options[${page.currentPage}-1].selected = true; &lt;/script&gt; &lt;/select&gt;页 &lt;/form&gt; ...

    基于Struts+Hibenater

    &lt;option value="2"&gt;学生&lt;/option&gt; &lt;/select&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="submit" value="登录" /&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="reset" value="取消" /&gt; &lt;input type...

    用Struts2新建一个应用的方法步骤

    用Struts2新建一个应用的方法步骤用Struts2新建一个应用的方法步骤: 1.首先新建一个Web Project。File——new——Web Project,在Project Name中输入一个合法的名字。例如:struts2 2. 单击采单Window——...

    OA_struts2_hibernate3_spring2.5.rar

    &lt;constant name="struts.i18n.encoding" value="gbk"&gt;&lt;/constant&gt; &lt;package name="struts2" extends="struts-default"&gt; &lt;global-results&gt; &lt;result name="add_success" type="redirect"&gt;/common/pub_add_...

    struts2的select标签用法实例分析

    struts2 中从别的表中遍历数据 填充进入下拉菜单 用&lt;s&gt;标签显示. struts2的版本为2.1.8 &lt;s list=””  name=””  value=””  headerKey=””  headerValue=””  listKey=””  listValue=”” /&gt; (1)其中 ...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    galaxy-java 开源java框架。

    功能,相比struts2和spring,着实方便多了. 如果觉得好用,就放弃ssh吧,加入到galaxy的阵营。 1. 完成一个用户管理功能? user.jsp ,这个页面用于新增,修改一个用户 &lt;html&gt; &lt;head&gt;&lt;/head&gt; &lt;body&gt; &lt;% ...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    struts2+dwr 整合实例

    下载放到Myeclips里就可以运行、里面包含struts2环境搭建(点击按钮)、struts2+dwr整合(在文本框中输入值后会访问后台,给select动态增加option赋值、点击按钮又会显示会select被选中的option的value和text值)、...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。书中...

    galaxy-java 开源java框架(2012年5月12号)

    功能,相比struts2和spring,着实方便多了. 如果觉得好用,就放弃ssh吧,加入到galaxy的阵营。 1. 完成一个用户管理功能? user.jsp ,这个页面用于新增,修改一个用户 &lt;html&gt; &lt;head&gt;&lt;/head&gt; &...

    struts2中常用Result类型(type)的用法和出现的问题

    struts2 常用Result类型(type)的用法 Invalid result location value/parameter错误的解决办法

    java面试题

    2:继承:子类继承父类,子类可以拥有父类中已定义的方法,并且子类可以修改父类中的方法使其更适合特殊需求。 3:多台:不同对象对统一消息作出不同响应称之为多态 4:抽象:忽略与当前主题无关的那些方面,将...

    完全免费的Java/jsp开发编辑工具FirstJava2

    如果选择"select"时,它将自动输入"&lt;select name="" &gt; &lt;/select&gt;"; 如果选择"option"时,它将自动输入"&lt;option value="" &gt; &lt;/option&gt;"; 12.在编辑jsp页面时,在&lt;% %&gt;之间,输入"out.","session.","application.", 就会...

    FirstJava2完全教材

    如果选择"select"时,它将自动输入"&lt;select name="" &gt; &lt;/select&gt;"; 如果选择"option"时,它将自动输入"&lt;option value="" &gt; &lt;/option&gt;"; 12.在编辑jsp页面时,在&lt;% %&gt;之间,输入"out.","session.","application.", 就会...

Global site tag (gtag.js) - Google Analytics