我有一个选择的TYPES框,每个类型都有自己的PARAMETERS.TYPES选择框将触发一些调用模板的AJAX并在我的视图上呈现PARAMETER选择框.参数由名称:值对组成,因此每个名称可以有许多值.
一些参数需要multiple ='true',以便用户为每个名称选择多个值,而其他参数只需要限制为一个选项.
在我的gsp页面中,我有一堆这样的:
<g:if test="${it?.getKey().toString().equals('PARAMETER_A')}">
<td><g:select multiple="true" optionKey="id" optionValue="value" name="sampleParameters" id="parameter" value="${params?.sampleParameters}" from='${it?.getValue().sort()}'></g:select></td>
</g:if>
<g:if test="${it?.getKey().toString().equals('PARAMETER_B')}">
<td><g:select multiple="true" optionKey="id" optionValue="value" name="sampleParameters" id="parameter" value="${params?.sampleParameters}" from='${it?.getValue().sort()}'></g:select></td>
</g:if>
Run Code Online (Sandbox Code Playgroud)
我的问题是我有一个特定TYPE的6个参数需要选择多个值,其余的则没有.有没有一种方法可以在ag中测试多个东西:if if like like like java in?如:
if(something.equals(PARAMETER_A) || something.equals(PARAMETER_B))
Run Code Online (Sandbox Code Playgroud)
等等
有没有办法在groovy中做类似于java的方法?
我希望用户在表单中上传文件,并在提交时打开文件并读取每一行,以便从中获取信息以存储在数据库中.到目前为止,我只能创建一个对象并从中提取字节.
def uploadedFile = request.getFile('name_of_file')
Run Code Online (Sandbox Code Playgroud)
这让我得到一个commonsMultipartFile,但我不确定是否需要将文件流式传输到缓冲区,或者将文件保存到临时文件夹中然后尝试以这种方式打开它.
uploadedFile.getbytes() 会给我一个阵列[71,101,110,101,114,97,108,13,10,45,45,45,45,45,45,45,13,10,53,116 ....]这不是我可以做任何事情的形式.
我需要能够打开文件并逐行读取.我可以用commonsMultipartFile做到这一点 - 它的选项看起来有点限制.
我试图在这里遵循ajax驱动的选择教程:http://grails.org/AJAX-Driven+SELECTs+in+GSP但是,我收到以下错误:
URI
/ajaxSelects/
Class
java.lang.NullPointerException
Message
Cannot invoke method list() on null object
Run Code Online (Sandbox Code Playgroud)
我完全按照教程.问题似乎来自以下代码,其中grails不喜欢Country.list():
<g:select
optionKey="id" optionValue="name"
name="country.nameid="country.name" from="${Country.list()}"
onchange="${remoteFunction(
controller:'country',
action:'ajaxGetCities',
params:'\'id=\' + escape(this.value)',
onComplete:'updateCity(e)')}"
></g:select>
Run Code Online (Sandbox Code Playgroud)
有关为什么此代码不起作用的任何想法?