SAStruts リンク記述におけるs:linkとhtml:linkの比較
生活随笔
收集整理的這篇文章主要介紹了
SAStruts リンク記述におけるs:linkとhtml:linkの比較
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
http://localhost:8080/app/subapp/action/method/1
ホスト名以降、「メインアプリ/サブアプリ/アクション/メソッド/パラメータ」とします。
SAStrutsでこのURLにアクセスした場合の、<s:link>と<html:link>の挙動を比較してみます。
s:link
以下、公式リファレンスの引用です。
SAStrutsには、Strutsのhtml:linkを継承したs:linkが用意されています。 href屬性を設定するときに、コンテキストルートを自動的に補完させる場合に使います。パスを/ではじめた場合は、コンテキストルートからみたパスになります。パスが/ではじまっていない場合は、JSPからみたパスになります。
Super Agile Struts - Feature ReferenceJSP
<s:linkhref="">A</s:link> <s:linkhref="link">B</s:link> <s:linkhref="./">C</s:link> <s:linkhref="./link">D</s:link> <s:linkhref="../">E</s:link> <s:linkhref="http://www.cnblogs.com/">F</s:link> <s:linkhref="/">G</s:link> <s:linkhref="/link">H</s:link>出力html
想定される遷移先をコメントで示しています。
<ahref="/app/subapp/action/">A</a> <!-- 同じアクションのindexメソッド --> <ahref="/app/subapp/action/link">B</a> <!-- 同じアクションのlinkメソッド --> <ahref="/app/subapp/action/./">C</a> <!-- 同じアクションのindexメソッド --> <ahref="/app/subapp/action/./link">D</a> <!-- 同じアクションのlinkメソッド --> <ahref="/app/subapp/action/../">E</a> <!-- サブアプリのIndexアクション --> <ahref="/app/subapp/action/http://www.cnblogs.com/">F</a> <!-- メインアプリのIndexアクション --> <ahref="/app/">G</a> <!-- メインアプリのIndexアクション --> <ahref="/app/link">H</a> <!-- メインアプリのLinkアクション -->遷移先URL
A http://localhost:8080/app/subapp/action/ B http://localhost:8080/app/subapp/action/link C http://localhost:8080/app/subapp/action/ D http://localhost:8080/app/subapp/action/link E http://localhost:8080/app/subapp/ F http://localhost:8080/app/ G http://localhost:8080/app/ H http://localhost:8080/app/linkhtml:link
JSP
<html:linkhref="">A</html:link> <html:linkhref="link">B</html:link> <html:linkhref="./">C</html:link> <html:linkhref="./link">D</html:link> <html:linkhref="../">E</html:link> <html:linkhref="http://www.cnblogs.com/">F</html:link> <html:linkhref="/">G</html:link> <html:linkhref="/link">H</html:link>出力html
<ahref="">A</a> <!-- 同じアクションの同じメソッド、同じパラメータ --> <ahref="link">B</a> <!-- 同じアクションの同じメソッド、linkパラメータ --> <ahref="./">C</a> <!-- 同じアクションの同じメソッド、パラメータなし --> <ahref="./link">D</a> <!-- 同じアクションの同じメソッド、linkパラメータ --> <ahref="../">E</a> <!-- 同じアクションのindexメソッド --> <ahref="http://www.cnblogs.com/">F</a> <!-- サブアプリのIndexアクション --> <ahref="/">G</a> <!-- ドキュメントルート --> <ahref="/link">H</a> <!-- 別のWebアプリ -->遷移先URL
A http://localhost:8080/app/subapp/action/method/1 B http://localhost:8080/app/subapp/action/method/link C http://localhost:8080/app/subapp/action/method/ D http://localhost:8080/app/subapp/action/method/link E http://localhost:8080/app/subapp/action/ F http://localhost:8080/app/subapp/ G http://localhost:8080/ H http://localhost:8080/linkまとめ
基本的には、<s:link>を使うのが良いと思います。<html:link>だと、以下の場合に遷移先URLが異なってしまいます。
※?html:link?「/」で終わるURLの場合
http://localhost:8080/app/subapp/action/method/1/ A http://localhost:8080/app/subapp/action/method/1/ B http://localhost:8080/app/subapp/action/method/1/link C http://localhost:8080/app/subapp/action/method/1/ D http://localhost:8080/app/subapp/action/method/1/link E http://localhost:8080/app/subapp/action/method/ F http://localhost:8080/app/subapp/action/<s:link>であれば、「/」で終わっていても同じURLになります。自動補完により、必ず絶対パスで出力されるためです。
轉載于:https://www.cnblogs.com/aggavara/archive/2012/09/29/2708713.html
總結
以上是生活随笔為你收集整理的SAStruts リンク記述におけるs:linkとhtml:linkの比較的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 类(7) 继承
- 下一篇: 《25项最优时间管理工具与技巧》