Java class 字段,对象在 Beanshell 中的使用
Java class fields, object use in Beanshell
我将 Java 与 JSF 和 Beanshell 脚本一起使用。我想在 beanshell 中使用 java class 的字段和对象。我已尽力从 google 获得帮助,但找不到任何有用的信息。
例如
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import bsh.EvalError;
import bsh.Interpreter;
public class C {
static Map<String,Object> map = new HashMap<String,Object>();
static List<String> list = new ArrayList<String>();
static Map<String,Integer> integerMap = new HashMap<String,Integer>();
public static void main(String[] arg) throws EvalError{
list.add("Hello");
list.add("World");
Interpreter i = new Interpreter(); // Construct an interpreter
map.put("stringList", list);//in java
i.eval("map.put(\"stringList\", list)");// gives error
List list = (List) map.get("stringList");
for(String str:(List<String>)list){
System.out.println(str);
}
}
}
我想对 beanshell 中的同一对象执行 java 中可用于收集的所有操作。
提供这样的设施,用户可以在其中更新 beanshell 中的变量,并且根据 link 上给出的详细信息,Jmeter 似乎正在使用字符串映射,我想做同样的事情但是它与对象有关。
如果可以用来实现我的要求的任何技术或框架都很好 java、beanshell、JSF 或 java 中的其他可用选项,我将不胜感激。
在 JMeter 的 Beanshell 或更好的 JSR223 采样器(Java 语言)中,您可以将对象放入 JMeter 变量中,如下所示:
JMeterVariables vars = JMeterContextService.getContext().getVariables();
vars.putObject("stringList", stringList);
并得到:
vars.getObject("stringList");
在 Java 一般情况下,您需要使用 set
方法将变量添加到 Beanshell Interpreter
:
list.add("Hello");
list.add("World");
Interpreter i = new Interpreter(); // Construct an interpreter
map.put("stringList", list);//in java
try {
i.set("map", map);
i.set("list", list);
System.out.println(i.eval("map.put(\"stringList\", list)"));
} catch (EvalError e1) {
e1.printStackTrace();
}
我将 Java 与 JSF 和 Beanshell 脚本一起使用。我想在 beanshell 中使用 java class 的字段和对象。我已尽力从 google 获得帮助,但找不到任何有用的信息。 例如
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import bsh.EvalError;
import bsh.Interpreter;
public class C {
static Map<String,Object> map = new HashMap<String,Object>();
static List<String> list = new ArrayList<String>();
static Map<String,Integer> integerMap = new HashMap<String,Integer>();
public static void main(String[] arg) throws EvalError{
list.add("Hello");
list.add("World");
Interpreter i = new Interpreter(); // Construct an interpreter
map.put("stringList", list);//in java
i.eval("map.put(\"stringList\", list)");// gives error
List list = (List) map.get("stringList");
for(String str:(List<String>)list){
System.out.println(str);
}
}
}
我想对 beanshell 中的同一对象执行 java 中可用于收集的所有操作。
如果可以用来实现我的要求的任何技术或框架都很好 java、beanshell、JSF 或 java 中的其他可用选项,我将不胜感激。
在 JMeter 的 Beanshell 或更好的 JSR223 采样器(Java 语言)中,您可以将对象放入 JMeter 变量中,如下所示:
JMeterVariables vars = JMeterContextService.getContext().getVariables();
vars.putObject("stringList", stringList);
并得到:
vars.getObject("stringList");
在 Java 一般情况下,您需要使用 set
方法将变量添加到 Beanshell Interpreter
:
list.add("Hello");
list.add("World");
Interpreter i = new Interpreter(); // Construct an interpreter
map.put("stringList", list);//in java
try {
i.set("map", map);
i.set("list", list);
System.out.println(i.eval("map.put(\"stringList\", list)"));
} catch (EvalError e1) {
e1.printStackTrace();
}