2012-01-26 9 views
6

${foo.bar.baz.phleem1},${foo.bar.baz.phleem2}などのEL式を持つ多くのJSPファイルがあります(最初の2つまたは3つのセグメントは等しい)。リファクタリング後JSPのリファクタリングEL式

<c:out value="${foo.bar.baz.phleem1}" /> 
<c:out value="${foo.bar.baz.phleem2}" /> 
<c:out value="${foo.bar.baz.phleem3}" /> 

出典:EL検索を減らすために、私はこれらのページをリファクタリングの過程で午前

<c:set var="baz" value="${foo.bar.baz}" /> 
<c:out value="${baz.phleem1}" /> 
<c:out value="${baz.phleem2}" /> 
<c:out value="${baz.phleem3}" /> 

は私が交換/検索でこれのほとんどを行うことができます知っています、それはコード構造を無視するので安全ではないと感じます。

EclipseまたはIntelliJ Ideaでこのタイプのリファクタリングがサポートされていますか?

+2

私が知る限りEclipseにはありません。 Eclipseでは、結果を並べ替えてプレビューして並べ替えることができます。 – BalusC

+0

私が行ったことで更新されました。 –

+0

私はチェックしました。 IDEA 11.0.1では、この種のリファクタリングもサポートしていません。 – Vadzim

答えて

0

はい。 Eclipseでプレースホルダを使用すると、正規表現を使用してそれに応じて変更できます。

は、JSPに正規表現のオプションとfilepatternをチェックし、[検索]をクリックし、[Ctrlキー+ H] ​​

日食で正規表現については、以下のURLを参照してください。コンテンツの

enter image description here

Ctrlキーを押しながらスペースを助けます。

enter image description here

マッチングのための[検索]をクリックし、1つの回ですべて一致した文字列に置き換わる置き換えます。あなたは、コンテンツ

enter image description here

enter image description here

enter image description here

+1

OPはこれをよく承知しています:* "検索/置換でほとんどのことを行うことができますが、コード構造を無視するので危険です。" * OPは、 Alt + Shift + Lを押します。 – BalusC

+1

この回答は、実際にOPが求めていることをどうやって行うのか、彼自身の解決策を組み合わせるために使うことはできません。 – millimoose

+0

私は約1つのショットで約350のJavaファイルのパッケージの名前を変更するために同じものを使用しています:)!私はそれが正規表現グループの使用を助けるかもしれないと感じました:) –

1

たぶん、あなたは、emacsの中でNXMLモードを使用することができますを交換するための正規表現のグループを使用することができます。 (私はそれをテストしていません) nxml-up-elementのようないくつかの関数があります。私はあなたが強力なマクロを作ることができると確信しています。しかし、私はコードをgrepして手動で行う方が簡単だと思います。

+0

ハハハ、狂ったemacsの提案のための+1 –

+0

主な問題は、私たちのJSPが整形式のXMLではないということです。それ以外の場合は、XMLベースのツールを自分でハックします。 –