我有一个JSP,我通过它将一些表单参数发布到REST资源服务“HandlerAPI.executeQuery”。
POST请求的JSP如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form id="form1" action="rest/HandlerAPI" method="post" >
<select id="type1" name="type1">
<option value="Option1">Option1</option>
<option value="Option2">Option2</option>
<option value="Option3">Option3</option>
<option value="Option4">Option4</option>
<option value="Option5">Option5</option>
</select>
<p><p/>
<fieldset>
<legend>Enter query or input file:</legend>
Enter the query:
<textarea id="type2" name="type2" cols="50" rows="10"></textarea>
<p><p/>
Enter the location of input file:
<input type="file" id="type3" name="type3"></input>
<input type="submit" value="Submit"/>
</fieldset>
</form>
<script>
$(document).ready(function() {
$('#type2').keyup(function(e) {
if($(this).val() != '') {
$(":file").not(this).attr('disabled','disabled');
} else {
$(this).removeAttr('disabled');
$(":file").removeAttr('disabled');
}
});
$(":file").change(function(e) {
var files = e.target.files;
if($(":file").val() != '') {
$("#type2").not(this).attr('disabled','disabled');
} else {
$(":file").removeAttr('disabled');
$("#type2").removeAttr('disabled');
}
});
});
</script>
</body>
</html>
资源服务方法如下:
@Path("/HandlerAPI")
public class HandlerAPI extends PackagesResourceConfig {
...
@POST
@Path("/{type1}/({type2}|{type3})")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_PLAIN)
public String executeQuery(@FormParam("type1") String type1, @FormParam("type2") String type2, @FormParam("type3") String type3) {
//service implemented here
return "Query successfully executed.";
}
我的要求是:
因此,我的带注释的@Path url将进行调整。
任何有用的建议都将受到赞赏和奖励。
谢谢