在javascript中获取servlet值,并使用ajax将该值分配给一个文本框
Get servlet value in javascript and assign that value to a textbox using ajax
我有一个servlet,从属性文件中获取值。我想在javascript中从servlet获取值,并使用AJAX将该值设置为文本框。我是Ajax的新手,所以请通过查看我的代码为我提供一个解决方案。
SERVLET
@WebServlet("/PopulateProperties")
public class PopulateProperties extends HttpServlet {
private static final long serialVersionUID = 1L;
Properties prop = new Properties();
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String serverName=request.getParameter("servernameDD");
List<Map<String,String>> returnObj = new ArrayList<Map<String,String>>();
String[] servers = getSearchAttr("servers");
if (servers != null && servers.length > 0) {
String[] lookfor = getSearchAttr("servers_lookfor");
for (String server : servers) {
Map<String,String> obj = new HashMap<String,String>();
if (lookfor != null) {
for (String look : lookfor) {
//System.out.println("looking for :"+look);
String value = prop.getProperty(server+"_"+look);
if(server.equalsIgnoreCase(serverName)){
if(look.equalsIgnoreCase("Links")){
String getlook=prop.getProperty(look);
String getlink=prop.getProperty(server+'_'+look,"Links");
System.out.println("Hello" +getlink);
System.out.println(getlook);
request.setAttribute("serverLink", getlink);
}
}
if (value != null) {
obj.put(look, value);
}
request.setAttribute("servers", server);
request.setAttribute("lookfor", look);
}
}
//System.out.println("Object :"+obj);
returnObj.add(obj);
}
}
response.sendRedirect("updateserverstatus.html");
}
private String[] getSearchAttr( String property){
String lookfor = prop.getProperty(property,"");
String[] ret = {lookfor};
if (lookfor.contains(",")) {
return lookfor.split(",");
} else {
//System.out.println("comma not present in "+property);
//System.out.println("webservice :"+lookfor);
return ret;
}
}
我尝试了以下Ajax请求,但收到了"serverLink未定义错误"
function OnSelectionChange(){
$.ajax({
type: "POST",
url: "/PopulateProperties",
data: "{Links: " + serverLink + "}",
success: function(result){
alert(result.d);
console.log(result);
}
});
}
您使用servlet来获取数据和转发。使用servlet提供数据不是一种合适的方式。更好的解决方案是:
在servlet中,您应该只返回json格式的属性数据。您可以参考此
然后在html页面中使用ajax获取这些数据,并更新textarea的文本。
最好仅为此目的创建单独的servlet。这将保持代码的连贯性。传递将用于缩小到需要检索的数据的所有参数。
为了简单起见,只需返回值,也可以将数据作为JSON键值对返回。
如果你的文本框是这样的。<input type="text" id="prop_txt">
那么ajax代码将是
$.ajax({
type: "POST",
url: "/PopulateProperties",
data: "{A:(..a value..),
B:(..b value..),
....
....
(..all the parameters required..)
}",
success: function(result){
//alert(result.d);
console.log(result);
$('#prop_txt').val(result);
}
});
希望这个和平。
相关文章:
- 在javascript中获取servlet值,并使用ajax将该值分配给一个文本框
- 将文本值匹配/分配给属性
- 在jquery中,将文本框值分配给标签是正确的编码方式吗
- 使用javascript递减会话时间值并分配给标签文本
- 编写一个代码来拆分字符串“test”,并将Name的值分配给文本框,将ok的值分配到复选框
- 我无法为谷歌浏览器分配文本值
- 如何将动态文本框值分配给相应的模型
- 将文本框值分配给变量时出现问题
- AngularJS:获取一个文本区域的值及其 ID 并将其分配给另一个 textare
- 在 JQuery 自动完成中将一个文本框选定值分配给另一个文本框选定值
- 使用 ajax 分配文本框值 - 页面仍在刷新,分配的值已消失
- 为段落文本的一部分分配 ID
- 将 html 标记分配给文本区域值
- 当您将字符串文本传递给变量,然后将该字符串中的数据分配给新变量时,它叫什么
- 找到一个特定的td,并使用jquery将该值分配给文本输入
- 如何正确地分配style.backgroundClip=“;文本”;
- 如何在两个不同的文本框元素中分配 AJAX 响应?(每个文本框中的值不同)
- 我需要给文本框分配一个值,其中的值将是当前按下按钮的值
- 无法将数组值分配给文本框
- 动态分配文本到从& lt; li>