[mayaa-user:1021] forward後のpageスコープの変数参照について

gmail [E-MAIL ADDRESS DELETED]
2014年 4月 3日 (木) 19:11:53 JST


Mayaa開発 各位

お世話になっております。
山崎と申します。

forward後のpageスコープの変数参照について、確認したいことがあり、ご連絡しました。

page['XXX']で指定した変数は暗黙的に${XXX}で参照できますが、
Mayaaのforward()を利用した後ですと、
forward後に宣言したpage['XXX']であっても、暗黙的に参照できなくなります。
(page['XXX']で指定すると参照できる。ただし、_['XXX']は参照できない。)
実装例と表示を以下に記します。

page[]は使わずvarを使うと問題なく参照できますが、キー名を変数から参照することをやろうと思うと、page[]を利用したくなります。本件を回避する方法があれば、教えていただけませんか。

また、実装方法や認識が間違っておりましたらご指摘いただけると幸いです。

本件確認のバージョンは1.1.32となります。

※実装例
■/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
   <head></head>
   <body>${forward('/forward/to.html')}</body>
</html>

■/forward/to.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>fowarded!</title>
</head>
<body>
   <div id="message"></div>
   <div id="messageFromPageScope"></div>
</body>
</html>

■/forward/to.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m="http://mayaa.seasar.org">
   
   <m:with m:id="message" replace="false" >
       <m:exec script="${page['message'] = 'success'}" />
       <!-- forwardすると参照できない -->
       <m:write value="${message}" />
   </m:with>

   <m:with m:id="messageFromPageScope" replace="false" >
       <m:exec script="${page['message'] = 'success'}" />
       <!-- forwardしても参照できる -->
       <m:write value="${page['message']}" />
   </m:with>
   
</m:mayaa>

※表示
■index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>fowarded!</title>
</head>
<body>
   <div id="message"></div>
   <div id="messageFromPageScope">success</div>
</body>
</html>

■/forward/to.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>fowarded!</title>
</head>
<body>
   <div id="message">success</div>
   <div id="messageFromPageScope">success</div>
</body>
</html>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/mayaa-user/attachments/20140403/ed030a11/attachment.html>


mayaa-user メーリングリストの案内