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

相关推荐

    <html:select>: 选择默认值

    `&lt;html:select&gt;`标签是Struts框架中非常重要的一个组成部分,它提供了丰富的功能来创建和管理下拉列表。通过合理地设置属性,开发者可以轻松地实现诸如设置默认选中项等功能,从而提高用户体验并简化开发过程。希望...

    Struts2标签列表及说明

    * &lt;s:push&gt;:value 的值 push 到栈中,从而使 property 标签的能够获取 value 的属性 Q: 无标签 R: * &lt;s:radio&gt;:单选按钮 * &lt;s:reset&gt;:重置按钮 S: * &lt;s:select&gt;:下拉框 T: 无标签 U: 无标签 V:...

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    在JSP页面中,我们可以使用Struts2的标签库(例如`s:textfield`, `s:checkbox`, `s:select`等)来创建表单元素,并将这些元素与Action的属性绑定。对于集合类型,我们通常会在JSP中通过迭代器遍历并生成多个表单...

    struts2标签解释

    `&lt;s:property&gt;`标签用于获取"value"属性的值,可以用来显示Action中的属性值。 P. `&lt;s:radio&gt;`,`&lt;s:reset&gt;`,`&lt;s:select&gt;`,`&lt;s:set&gt;`: `&lt;s:radio&gt;`创建单选按钮,常与列表结合使用。 `&lt;s:reset&gt;`标签用于创建...

    struts2实现页面select标签默认选中

    在Struts2框架中,实现页面`&lt;select&gt;`标签默认选中的功能是非常实用且常见的需求。这不仅可以提高用户体验,还能让界面看起来更加专业。本文将详细介绍如何通过Struts2的相关标签来实现这一功能。 ### Struts2框架...

    struts2标签大全详解

    2. `&lt;s:hidden&gt;`:创建隐藏字段,用于存储不显示在页面上的数据。 I部分: 1. `&lt;s:i18n&gt;`:加载资源包到值栈,支持国际化。 2. `&lt;s:include&gt;`:包含一个Servlet或JSP页面。 J部分:无标签。 K部分:无标签。 L...

    struts2.0 标签清单

    `&lt;s:hidden&gt;` 标签用于创建隐藏字段,常用于保存表单中不希望用户直接修改的信息。 ### 20. `&lt;s:i18n&gt;` 标签 `&lt;s:i18n&gt;` 标签用于国际化文本,可以从资源文件中获取翻译后的文本。 ### 21. `&lt;s:include&gt;` 标签 `...

    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...

    jsp中htmlselect标签的用法

    这个标签在Struts框架中尤其常见,因为它与ActionForm对象的属性紧密关联,方便数据的提交和回显。以下是对`html:select`标签的详细解释和使用方法: ### 基本结构 `html:select`标签的基本结构如下: ```jsp ...

    struts2_标签使用方法.doc

    - `&lt;s:property/&gt;`:根据'value'属性显示值,可以从值栈中获取数据。 - `&lt;s:push&gt;`:将值压入栈,使得后续的`s:property`标签可以访问该值。 Q. `&lt;s:radio&gt;`: - 创建单选按钮,用户只能选择其中一个。 R. `&lt;s:...

    Struts2教育資料

    此外,Struts2还提供了一些其他标签,如表单标签(`&lt;s:form&gt;`)、错误处理标签(`&lt;s:fielderror&gt;`、`&lt;s:errors&gt;`)、国际化标签(`&lt;s:text&gt;`和`s:resourcebundle&gt;`)等,它们帮助开发者轻松处理表单验证、错误提示和...

    struts2-s标签

    而在 Struts2 中,所有的标签都被统一管理,并通过在 JSP 文件头部声明 `&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;` 来启用 Struts2 的标签库。这种方式简化了开发过程中的配置工作,使得开发者可以更加专注于...

    struts2常用标签

    以上只是Struts2标签库中的一部分,实际上还有很多其他的标签,如`&lt;s:textfield&gt;`(文本输入框)、`&lt;s:textarea&gt;`(多行文本输入框)等,它们共同构成了Struts2强大的视图层支持,简化了Web开发中的页面构建工作。

    struts2标签介绍

    在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上使用这些标签。 **A组标签:** 1. `&lt;s:a&gt;` - 用于创建超链接,与HTML的`&lt;a&gt;`标签类似,可以...

    Struts2标签 UI标志又可以分为表单UI和非表单UI两部分

    Struts2作为Java Web开发中的一个重要框架,为开发者提供了丰富的标签库来简化Web页面的构建过程。根据官方文档所述,“UI标签又可以分为表单UI和非表单UI两部分”。本文将重点介绍这两部分标签的应用场景以及使用...

    Struts2标签应用.

    2. `&lt;s:hidden&gt;`:创建隐藏字段,用于存储不显示在页面上的值。 I部分: 1. `&lt;s:i18n&gt;`:加载国际化资源包到值栈,支持多语言应用。 2. `&lt;s:include&gt;`:包含其他JSP或Servlet页面的输出。 J部分: 1. `&lt;s:...

    struts2实现分页

    本文将详细介绍如何利用 Struts2 的 `&lt;s:bean&gt;` 标签结合 `&lt;s:iterator&gt;` 标签来实现分页。 #### 二、`&lt;s:bean&gt;` 标签介绍 `&lt;s:bean&gt;` 是 Struts2 提供的一个用于创建 bean 实例的标签。它支持创建一个指定类的...

    struts2标签大全

    &lt;s:merge var="mergedValue" values="%{value1},%{value2}"/&gt; ``` #### 30. `&lt;s:optgroup&gt;` - 选项组标签 创建选项组。 ```xml &lt;s:optgroup label="Group 1" list="group1Options"/&gt; ``` #### 31. `&lt;s:...

    Struts标签

    - `&lt;s:property&gt;`:显示或输出值栈中的对象属性。 - `&lt;s:include&gt;`:包含其他JSP或Action的结果。 2. **UI标签**: - **表单UI标签**: - `&lt;s:form&gt;`:创建HTML表单,支持POST和GET提交方式,可以设置enctype...

    struts2标签整理

    &lt;s:param value="value2"/&gt; &lt;/s:merge&gt; ``` ##### 30. `&lt;s:optgroup&gt;` - 选项组标签 用于创建选项组。 ```jsp &lt;s:optgroup label="Group1"&gt; &lt;s:option value="1" label="Option1"/&gt; &lt;s:option value="2" label=...

Global site tag (gtag.js) - Google Analytics