1

我的 web 应用程序中存在 struts 2 和日期值的问题。我有一个表格,里面有一个 s:textfield 显示日期值。我从请求中读取了这个值,问题是该值的名称在其他变量中。

我打电话 的行动是这样做的:

...   
public String execute(){ return SUCCESS;}

public MyObject getObject1(){   
  MyObject result = new MyObject();  
  result.setDate(new java.util.Date());  
  return result;  
}  
...

成功后,它进入我的表格。

我表单中的代码(我想写的)是:

<s:form action="save">
  <s:set name="objName" value="object1"></s:set>  
  <jsp:include page="../includedform.jsp"></jsp:include>  
</s:form>

“includedform.jsp”中有:

<s:textfield name="%{objName}.date" label="Date" >  
  <s:param name="value">  
    <s:date name="%{%{objName}.date}" format="dd/MM/yyyy" />  
  </s:param>  
</s:textfield>

语法: %{%{objName}.anagrafica.dataNascita}
不起作用(显然,它什么也没显示)。所以我需要这样的东西,但工作:)

没有日期字段的“includedform.jsp”中的其他标签 s:textfield(为简单起见在下面的代码中省略)正在工作,因为我只使用 name 属性,而 struts 会自动查找该值。这是我用于这些文本字段的代码:

<s:textfield name="%{objName}.name" label="Name"/>
4

2 回答 2

1

您的问题非常令人困惑,您需要重新措辞以使其更加清晰易读。我不知道你为什么这样做

<s:textfield name="%{objName}.date" label="Date" >

虽然这可以像

<s:textfield name="objName.date" label="Date" > OR 
<s:textfield name="%{objName.date}" label="Date" >

当您编写objName.dateOGNL 时,假设您的操作类中有一个 bean,objName并且该 bean 具有属性date,最终这将转换为

getObjName().getDate()通过 ONGL

在类似的时尚<s:date name="%{%{objName}.date}" format="dd/MM/yyyy" />datee 标签上工作更多详情请参考官方文档

于 2012-08-22T07:10:18.600 回答
0

我尝试了一种解决方案并且它有效:)
1)仅将要在数据库表中存储日期的列保留为“DATE”数据类型。
2)在JSP页面中只使用Textfield标签。不要使用Date标签。 注意:确保仅通过在文本字段标记中放置占位符来以 YYYY-MM-DD 格式输入用户日期!
3) 只保留用于访问字符串类型字段的变量。不要使用 DATE 数据类型。
4) 现在运行查询:Select DATE_FORMAT(datecolumnname,'%d/%m%/Y') as date_two from tablename; 并且您将从该列中以 dd/mm/yyyy 格式获取日期,即使它以 YYYY-MM-DD 格式存储在 table 中。
5)您还可以将 datecolumn 的数据与 curdate() 和相关函数进行比较,并且它可以工作:)。
6)就像我使用查询:从表名中选择 id,name,DATE_FORMAT(datecolumnname,'%d/%m/%Y') as datecolumn2 where datecolumnname >= curdate();

于 2015-06-30T10:02:34.213 回答