1

私のWebアプリでStruts2と日付値に問題があります。フォームがあり、その中に日付値を示す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}
は機能しません(明らかに何も表示されません)。だから私はこのようなものが必要ですが動作しています:)

name属性のみを使用しており、strutsが値を自動的に検索するため、日付フィールドのない「includedform.jsp」内の他のタグs:textfield(簡単にするために以下のコードでは省略)が機能しています。これは、これらのテキストフィールドに使用するコードです。

<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を作成するとき、アクションクラスobjNameにBeanがあり、このBeanにプロパティがあると想定します。つまりdate、最終的にこれはに変換されます。

getObjName().getDate()ONGLによる

同様のファッションの<s:date name="%{%{objName}.date}" format="dd/MM/yyyy" />dateeタグ作品について詳細については、公式ドキュメントを参照してください

于 2012-08-22T07:10:18.600 に答える
0

私が試した解決策が1つあり、それは機能しました:)
1)データベースのテーブルに日付を格納する列を「DATE」データ型のみに保持します。
2)JSPページではテキストフィールドタグのみを使用します。日付タグは使用しないでください。 注:テキストフィールドタグにプレースホルダーを配置することによってのみ、ユーザー入力日をYYYY-MM-DD形式にするようにしてください。
3)文字列型のそのフィールドにアクセスするための変数のみを保持します。DATEデータ型は使用しないでください。
4)クエリを実行します。テーブル名からdate_twoとしてDATE_FORMAT(datecolumnname、'%d /%m%/ Y')を選択します。また、テーブルにYYYY-MM-DD形式で格納されている場合でも、その列からdd / mm/yyyy形式で日付を取得します。
5)また、datecolumnのデータをcurdate()および関連する関数と比較することもでき、それは機能します:)。
6)クエリを使用したように:select id、name、DATE_FORMAT(datecolumnname、'%d /%m /%Y')as datecolumn2 from tablename where datecolumnname> = curdate();

于 2015-06-30T10:02:34.213 に答える