[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10849] Re: 権限により表 示内容を変えたい



おはようございます。伊藤です。
残念ながら最近忙しくて読書会にあまり参加できていない、、、、


On Sun, 19 Oct 2003 00:39:11 +0900
Yan Kanai <ykanai@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> で、ここからが本題です。皆さんに伺いたいのは、管理者権限、ユーザ権限のような
> 権限が異なるログインユーザでは、それぞれに見せる画面の内容を変えるようにした
> いのです。例えば、グループの設定画面があるとします。管理者権限のログインユー
> ザは、
> 
> 1. グループ名:
> 2. グループ種別:longest waiting/rotary/collectiveなどが選択可
> 3. 所属ユーザ:2000,2001,2002など端末番号が複数入力可
> 
> という3つの項目が設定できるとします。しかし、ユーザ権限の人は、1しか設定でき
> ない、つまり、2と3の項目は、グループ設定の画面に表示されないようにしたい。こ
> ういったことを、Strutsで実現する場合は、どのように設計すればよいでしょうか?
いちばん簡単そうなのが struts-tilesを使うことですね。

こんな definition.xmlを用意し、
<!-- definition.xml -->
<definition name="menu.superuser" extends="menu.user">
  <put name="menu.superuser.editGroup">
  <put name="menu.superuser.editUser">
</definition>
<definition name="menu.user" path="MenuBar.jsp">
  <put name="menu.user.viewGroup">
</definition>
(各メニューコンポーネントを定義)

こんな感じのJSPを書けばできますよね
<logic:if 管理者>
  <logic:then>
    <tiles:insert definition="menu.superuser" flush="true" />
  </logic:then>
  <logic:else>
    <tiles:insert definition="menu.user" flush="true" />
  </logic:else>
</logic:if>
<!-- logic:ifタグとかが欲しいので私はこれをstrutsに追加してます
 http://husted.com/struts/resources/logic-niallp.htm
-->


struts-tilesはいまいち日本語のリソースが少ないですが、とても
分かりやすいコンポーネントなので重宝すると思います。ただ、
<tiles:insert definition="foobar" flush="true" />
これ一行だけのJSPがたくさん必要になってしまうという気持ち悪さは
ありますが、、、


p.s
なんか気持ち悪いので、 *.viewにマッチするサーブレット内で
setDefinition(*)をしたtiles.InsertTagを呼び出しています。
これで大量の一行JSPが要らなくなりました。

-- 
Tetsu Ito <vfe03165@xxxxxxxxx>