0

2つのストラットtaglibを互いに使用したいのですが、次のようになります。

< s:property value="url-< s:property value="number"/>"/>

また

< s:property value="url-${number}"/>

しかし、2番目のエラーで次のエラーが発生しました。

TLDまたはタグファイルの属性ディレクティブによると、属性値は式を受け入れません。

誰かが解決策を持っていますか?

ありがとう

4

3 に答える 3

2

あなたも使うことができます

<s:property value="'url-'+'%{number}'"/>

Strutsは、%{yourAttribute}の形式のOGNL式を受け入れます

于 2011-04-10T06:59:33.607 に答える
0

解決策は簡単すぎました!

私たちの友人のleonbloyが言ったように、数値はイテレータで生成されたときに値スタックになりました。だから私はそれの名前を書くべきです:

<s:property value="url-number"/>
于 2010-05-24T20:32:07.300 に答える
0

" number"の値が固定されている場合(jsp生成の時点で、つまり、jspで設定されていないか、イテレータで変更されていない場合)、アクションのメソッドにリファクタリングすることをお勧めします。たとえば、「number」がアクションのプロパティである場合:

  public String getUrlWithNumber() {
     return "url-" + String.valueOf(getNumber());
  }  

  <s:property value="urlWithNumber"/>

他の場所では、(テストされていない)として何かを試すことができます

  public String buildUrlWithNumber(int number) {
     return "url-" + String.valueOf(number);
  }  


  <s:property value="buildUrlWithNumber(${number})"/>

またはそのようなもの。

于 2010-05-24T17:57:55.697 に答える