[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00024] Re: Velocity について
疋田です。
高橋様、えんどう様、本当にありがとうございました。
> ServletConfig.getServletContext().getRealPath("/");
> の呼び出しが必要です。
>
> <Velocity_Dir>\examples\servlet_example1\SampleServlet.java
> の
> protected Properties loadConfiguration(ServletConfig config)
> というメソッドを見てみてください。
このサンプルを参考にしたら動作しました。
が、もうひとつ問題が。
実は、出力先をクライアントではなく、ファイルにしたいと考えています。
ブラウザから送信されてきた結果を元に、サーバ側でSVGファイルを作成したい
のです。
TemplateとContextのマージ結果をファイルに格納するにはどうすればいいので
しょうか。
http://jakarta.apache.org/velocity/api/index.html
を参考に調べてみたのですが、わかりませんでした。
一応、現在のコードを引用しておきます。
よろしくお願いいたします。
------- TestServlet.java
import java.io.* ;
import java.util.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
import org.apache.velocity.* ;
import org.apache.velocity.app.* ;
import org.apache.velocity.context.* ;
import org.apache.velocity.servlet.* ;
import org.apache.velocity.exception.* ;
public class TestServlet extends VelocityServlet {
protected Properties loadConfiguration( ServletConfig sc ) {
Properties p = new Properties() ;
String path = sc.getServletContext().getRealPath("/") ;
if ( path == null ) {
System.out.println("This Servlet loadConfiguration() : unable to get the current webapp root.") ;
path = "/" ;
}
p.setProperty( Velocity.FILE_RESOURCE_LOADER_PATH, path ) ;
p.setProperty( "runtime.log", path + "velocity.log" ) ;
return p ;
} // End of Method loadConfigration
public Template handleRequest (HttpServletRequest req, HttpServletResponse res, Context ctx) {
String title, fill, stroke, transform ;
title= req.getParameter("title") ;
fill= req.getParameter("fill") ;
stroke= req.getParameter("stroke") ;
transform= req.getParameter("transform") ;
ctx.put("title", title) ;
ctx.put("fill", fill) ;
ctx.put("stroke", stroke) ;
ctx.put("transform", transform) ;
Template template = null ;
try {
template = getTemplate("test.vm") ;
} catch ( ParseErrorException pee ) {
System.out.println( "This Servlet : parse error for template " + pee ) ;
} catch ( ResourceNotFoundException rnfe ) {
System.out.println( "This Servlet : template not found " + rnfe ) ;
} catch ( Exception e ) {
System.out.println( "Error " + e ) ;
}
return template ;
} // End of Method handleRequest
}
---------------
Keiichi HIKITA
NTT Cyber Solutions Laboratories
Mail: hikita.keiichi@xxxxxxxxxxxxx
Tel : 0422-59-7785 Fax : 0422-59-3931