gpt4 book ai didi

java - 创建错误条件并将其传回客户端

转载 作者:行者123 更新时间:2023-12-01 04:48:45 26 4
gpt4 key购买 nike

在我的 Grails Web 应用程序中,我有一个弹出对话框,允许我输入某种类型的自然语言表达式,该表达式将用于在应用程序中执行某些操作。

我目前正在 groovy 中实现解析器,并且想知道如何创建错误消息并将它们返回给客户端。

我正在考虑使用<g:formRemote>将使用 ajax 将文本字符串发送到解析器,并在成功解析字符串后,它将执行应用程序中的操作,例如将用户添加到项目,通常会重定向到新页面,说现在向用户展示项目的一部分。如果解析器收到它不期望/识别的标记,或者如果字符串不遵循正确的语法,我将能够创建一条错误消息并将其发送回客户端,允许用户尝试另一个命令。

到目前为止我的代码看起来像这样..

在我的 Controller 中用于接收ajax请求

def runTemp()
{
def tokenizer = new Tokenizer()
def posTagger = new PartOfSpeechTagger()

def words = tokenizer.getTokens("add user");
def taggedWords = posTagger.tagWords(words)

taggedWords.each{
println"${it.word} : ${it.partOfSpeech}"
}
}

我的 PartOfSpeechTagger.groovy 看起来像

package uk.co.litecollab.quickCommandParser

class PartOfSpeechTagger {

def lexicons = [
//VERBS
'add': PartOfSpeech.VERB,
'new': PartOfSpeech.VERB,
'create': PartOfSpeech.VERB,
'view': PartOfSpeech.VERB,
'delete': PartOfSpeech.VERB,
'logout': PartOfSpeech.VERB,
'remove': PartOfSpeech.VERB,
'chat': PartOfSpeech.VERB,
'accept': PartOfSpeech.VERB,
'active': PartOfSpeech.VERB,
'suspend': PartOfSpeech.VERB,
'construct': PartOfSpeech.VERB,
'close': PartOfSpeech.VERB,
'add': PartOfSpeech.VERB,

//NOUNS
'project': PartOfSpeech.NOUN,
'user': PartOfSpeech.NOUN,
'task': PartOfSpeech.NOUN,
'chat': PartOfSpeech.NOUN,
'conversation': PartOfSpeech.NOUN,

//DETERMINERS
'a': PartOfSpeech.DETERMINER,
'the': PartOfSpeech.DETERMINER,

//PREPOSITIONS
'to': PartOfSpeech.PREPOSITION,
'from': PartOfSpeech.PREPOSITION,
'for': PartOfSpeech.PREPOSITION,
'with': PartOfSpeech.PREPOSITION
]


//constructor
def PartOfSpeechTagger()
{

}

def tagWords(String[] words)
{
def taggedWords = [] as ArrayList
words.each{
//removing the use of 'it' due to nested closures
println"word to search for : ${it}"
def word = it
if(inLexicons(word))
{
println"word :: ${it}"
taggedWords.add(
new TaggedWord(
lexicons.find{it.key == word}.key,
lexicons.find{it.key == word}.value)
)
}
else
{
/*
* handle errors for not finding a word?
*/
}
}

return taggedWords
}

def inLexicons(key)
{
return lexicons.containsKey(key)
}
}

你可以在tagWords中看到我希望能够向客户报告所提供的单词不是预期的。

最佳答案

成功了,

在 Controller 中

render(status: 400, text: "the message")

然后以我的远程表单

onFailure="doSomething(XMLHttpRequest)"

然后通过 javascript 访问它

XMLHttpRequest.responseText

关于java - 创建错误条件并将其传回客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15384345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com