« ASP.NETの引越し | Main | いつ出たんだろうAxkit本? »

July 30, 2004

初めてのタグリブ

意外に簡単に動きました。自分でモジュールなんか作ったこともなく、mod_perlもそういえば本()を買ったっけ状態で、おっかなびっくりではありましたが。こんなことならもっと早くチャレンジするのだった。

躓いたの2点ほど。
FreeBSDのPerlが古い(5.003)ためか、
Apache::AxKit::Language::XSP::SimpleTaglibが動かず(原因は別かも)、Apache::AxKit::Language::XSP::TaglibHelperを使うことに。

ここの例題をコピることから始めたら、なんか
@ISA = qw( Apache::AxKit::Language::XSP::TaglibHelper );
が抜けているようです。

Global symbol "%_args" requires explicit > package name
と言うエラーがでたら、モジュールではなく、xsp(タグのTYPO)を疑いましょう。

hello.xsp ---------------------------------------------
<?xml version="1.0"?>
<?xml-stylesheet href="NULL" type="application/x-xsp"?>
<xsp:page
xmlns:xsp="http://www.apache.org/1999/XSP/Core"
xmlns:mylib="http://apache.org/xsp/testtaglib/v1"
xmlns:param="http://axkit.org/NS/xsp/param/v1"
>
<html>
<head>
<title>My First TagLib</title>
</head>
<body>
<form method="POST">お名前:
<input type="text" name="yourname" size="40" />
<input type="submit" value="送信"/>
</form>
<mylib:hello><mylib:uname><param:yourname/></mylib:uname></mylib:hello>
</body>
</html>
</xsp:page>

Test.pm -----------------------------------------------
package My::Test;

use Apache::AxKit::Language::XSP::TaglibHelper;

@ISA = qw( Apache::AxKit::Language::XSP::TaglibHelper );

## Edit $NS to be the namespace URI you want
$NS = 'http://apache.org/xsp/testtaglib/v1';

## Edit @EXPORT_TAGLIB as needed
@EXPORT_TAGLIB = (
'hello($uname)',
);

use strict;

sub hello {
my ( $uname ) = @_ ;
return "こんにちわ $uname さん!";
#ソースに日本語書いて大丈夫かい?と思ったが、UTF-8で保存したら動いた。
}
1;

Posted by idic at July 30, 2004 10:49 PM

Comments

Post a comment




Remember Me?