Я не уверен, что вы пытаетесь сделать с помощью javascript. Но вот что мы можем сделать, чтобы struts2 работал для вас
в вашем классе действий создайте 2 свойства
private String code
private String values
// create there getter and setter outside of execute method
теперь, когда вы отправляете свои значения, например, в вашем случае
localhost:8080/Com/test.action?code=1001&values=FUEL:PETROL, POWER:KW, Wheel
Configuration:4X2, CABIN:SINGLE CAB, TRANSMISSION:FULLY AUTOMATIC, Steering: LHD
Сборка Struts2 в стеке перехватчиков попытается найти свойство с кодом имени, значениями в вашем классе действий, и, поскольку вы уже указали методы установки для этих свойств, Struts2 попытается установить значения в этих свойствах.
, пытаясь установить свойства, он будет искать тип данных, который вы указали для своих свойств, встроенная система будет искать имеющиеся у него преобразователи типа box и будет пытаться преобразовать тип данных в соответствии с вашими требованиями. ,
если у него есть этот преобразователь типов, он будет работать за вас, иначе будет сгенерировано исключение, что он не может преобразовать данное значение в указанное значение.
FYI:
Struts2 предоставляет чистый способ отделить ваш код от базового Servlet API
, поэтому нет необходимости использовать request.getParameter()
или ActionContext.getContext()
, так как Framework сделает всю эту работу за вас и предоставит вам все в вашем классе действий в чистом виде. способ
вот код, работающий на меня
JSP
<script type="text/javascript">
function test(){
var code='001';
var values='values=FUEL:PETROL, POWER:KW, Wheel Configuration:4X2, CABIN:SINGLE CAB, TRANSMISSION:FULLY AUTOMATIC, Steering: LHD';
var value='demo.action?code='+code+'&values='+values;;
alert(value);
document.demo.action=value;
document.demo.submit();
}
</script>
</head>
<body>
<form action="" id="demo" name="demo" method="post">
<input type="button" onclick="test()">
</form>
и вот класс действий
private String code;
private String values;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getValues() {
return values;
}
public void setValues(String values) {
this.values = values;
}
public String execute(){
System.out.println("**************************"+code);
System.out.println(values);
}
вот консольный вывод
**************************001
FUEL:PETROL, POWER:KW, Wheel Configuration:4X2, CABIN:SINGLE CAB,
TRANSMISSION:FULLY AUTOMATIC, Steering: LHD