【问题标题】:How to avoid Default value (com.opensymphony.xwork2.DefaultTextProvider@28e67c) for textfield in struts2如何避免struts2中文本字段的默认值(com.opensymphony.xwork2.DefaultTextProvider@28e67c)
【发布时间】:2015-05-27 05:44:29
【问题描述】:

我正在开发一个 struts2 应用程序。在其中一个 JSP 页面中,我有一个文本字段标记,其值是从 OGNL 表达式中检索的。当 OGNL 表达式值为空时,它会在文本字段中显示 com.opensymphony.xwork2.DefaultTextProvider@28e67c。我不想要这个默认值,如果该值不可用,我只想显示空文本框。下面是我的代码。请帮忙。

在下面的示例中,当示例文本为空时,我得到一些文本字段的默认值com.opensymphony.xwork2.DefaultTextProvider@28e67c,但如果它为空,我想将其显示为空白。

JSP:

<%@ page language="java" errorPage="Error.jsp" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
 <%
  String sampletext = ""; 
 %>
 <html>
  <head>
  </head>
   <body>
     <s:set var="remarks"><%=sampletext%></s:set>
     <s:textfield value="%{remarks}" type="text"></s:textfield>
   </body>
 </html>

【问题讨论】:

  • 不要使用脚本。如果您使用的是 S2 标签,则不要使用 jstl 标签。
  • 您的操作中有remarks 变量吗?如果是,请显示您如何填充它及其 getter/setter。
  • 感谢您的回复。是的,我的行动中有备注变量。下面是填充它的代码。只是为了让您知道在行动中填充/设置备注变量很好,我遇到了文本字段中填充的默认值的问题。 Action Class:私有字符串备注; public String getRemarks() { 返回备注; } 公共无效 setRemarks(字符串备注) { this.remarks = 备注; }
  • 通过点击编辑链接将代码添加到您的帖子中。

标签: jsp struts2 jstl ognl


【解决方案1】:

你不应该在代码中使用脚本,因为提到了@AleksandrM,但你可以通过以下方式使用 JSTL

 <c:set var="remarks"><%=sampletext%></c:set>
 <s:textfield value="%{#attr.remarks}"/>

【讨论】:

  • 感谢您的回复。一旦我使用 JSTL,它就可以正常工作。
  • 我也会考虑你从代码中删除 scriplet 的建议。
猜你喜欢
  • 2021-09-29
  • 2011-06-14
  • 1970-01-01
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 2022-07-29
相关资源
最近更新 更多