私は、各コールインスタンスに固有のXMLファイルに基づいて電話を開始するアプリケーションを設定しています。テスト目的のために、私はGroovyのMarkupBuilderメソッドとStringWriterメソッドを使用してXMLを単一のファイルに書き込み、次に呼び出しが開始されたときにそのファイルを上書きしていました。GrailsでXMLを動的にレンダリングするには?
しかし、現在使用されているXMLを上書きするため、これは運用環境では機能しません。各呼び出しのために特別にXMLをレンダリングする方法のルールを含む「のcreateXML」方法と
callInstance.createXml()
:だから、私は動的ようなもので、それを呼び出すことによって、コントローラにXMLを作成したいと思います。
私は、オブジェクトを動的に作成されたXMLファイルに変換する方法を尋ねる複数のインスタンスを見つけましたが、MarkupBuilderを使用する必要があるため、これは少し異なります。クイックリファレンスについては
は、ここで私が働いているかの小さな例です:事前に
def f1 = new File('filename')
f1.delete()
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.doubleQuotes = true
xml.vxml(version:'2.1'){
property(name:"termchar", value:"#")
var(name:"hi", expr:"'Hello!'")
xml.form(){
block(){
value(expr:"hi")
xml.goto(next:"#next") //etc, etc
}
}
}
//break
f1.createNewFile()
f1 << writer.toString()
ありがとう!
def callxml = {
def call = Call.get(params.id)
render(contentType:"text/xml") {
vxml(version:'2.1') {
var(name:'hi', expr:call.message)
}
}
}
それとも、あなたはコールクラスにメソッドを追加することができますので、としてXMLに自分自身を変換する方法を知っている:あなたは(あなたのコントローラで)行うことができます
を呼び出すことができる必要がありますが、[この記事](http://www.ibm.com/developerworks/library/j-grails09168/)を見たことがありますか? 3歳ですが、まだそれには良い情報があります。 –