gpt4 book ai didi

html - 将字符串转换为函数

转载 作者:行者123 更新时间:2023-12-02 14:23:54 24 4
gpt4 key购买 nike

在 View 上,我有隐藏字段:
<g:hiddenField name="pageName" value="savePage1"/>
然后在 Controller 上(当表单提交时)
params.pageName = savePage1
我也有功能savePage1()
我试图将字符串转换为函数,但不起作用:

params.pageName + "()"

如何使用给定的 params.pageName调用该函数?

请帮忙,谢谢。

最佳答案

在您的示例中,您只是串联一个字符串,而不是调用方法。相反,您想要的是dynamic method invocation。假设savePage方法在this中:

String pageName = params.pageName
this."$pageName"()

这里的问题是您似乎在信任用户输入,因此您应确保 pageName在批准的白名单中,否则您将自己暴露于一些主要漏洞中:
String pageName = params.pageName

if (!pageName in [ 'savePage1', 'savePage2' /* ... */]) {
throw SomeException('Invalid pageName')
}

this."$pageName"()

尽管我认为它的性能要差一些,但是您最好也可以调用 Eval.me ,尽管首选上述方法。

关于html - 将字符串转换为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24695721/

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