Struts 2文字列コードの紹介を切り取ります。

2204 ワード

開発中、文字列が長すぎて、適切に切り取って表示する必要がある問題がよくありますが、実現方法はいくつかあります。
・バックグラウンドで切り取ってからページに戻して表示する
・ページでラベルやコードで実現
・デスクでスクリプトを使って処理する方法は勧められません。
・様式制御により、overflow:ellipseなどを追加することもできますが、この方法は推奨されていません。
・その他の方式
では、どうやってstruts 2タグで文字列を切り取りますか?ネット上ではこの問題について様々な説がありますが、実現方法はとても簡単だという人もいます。まず、取得した文字列を変数に保存して、str属性を例にとって直接に取得しなければなりません。              .........................     そして切り取りを判断します。コード:

//      6    6     <s:if test="%{#str.length()>6}">    <s:property value="str.substring(0,6)+'...'" />  </s:if>  //        <s:else>     <s:property value="str" />  </s:else> 
また、もっと簡単な方法があります。setを使わずに直接変数名で処理します。

//      6    6     <s:if test="str.length()>6">    <s:property value="str.substring(0,6)+'...'" />  </s:if>  //        <s:else>     <s:property value="str" />  </s:else> 
これについて言えば、基本的にはあなたの切り取り問題は解決できますが、この方法はhtmlタグを含む文字列に問題があるようです。ラベルも切り取ります。ページはラベルの不一致によって変形したり、「毀容」したりします。この問題を解決する原理はみんながよく知っています。あらかじめ文字列の中のhtmlラベルをフィルタリングして、struts 2のラベルを調べて説明しました。このような方法はないようです。そこで、インターネットで検索して、わずかなコードの解決策を発見しました。

<s:property value="#text.replaceAll('<[^>]+>','').substring(0,77)" escape="false" /> 
運転できるとは思っていませんでしたが、少しずつ学んできたので、textは変数です。このラベルの役割は、取得した値をすべてのhtmlタグから削除し、前の77文字を切り取り、後のescape='false'はHTMLタグをエンコードしないということです。これで問題が解決します。拍手します。この使い方から分かるように、struts 2のラベルはjavaのString類のすべての方法を支持しています。使い方はとても便利です。ここではれんがを投げて玉を引く効果があります。
締め括りをつける
以上がStruts 2の文字列コードの紹介の内容です。詳細はStrutsとservletが共存できない問題解決方法を参照してください。 、 Struts 2アップロードファイルのサイズ制限方法の解析を修正します。 、 struts 2開発プロセスと詳細配置など、この駅の他のテーマをご覧ください。友達のサポートに感謝します。