Java 以JSP形式动态填充数据(struts)
我的要求:我有一个选择和3个文本框的形式。当我从选择中选择特定选项时。我需要进入动作类,它将击中DB并获得三个字符串。必须在3个文本框中动态填充这3个字符串 我的问题是:我是J2EE新手,这将是我第一次尝试使用STRUTS2和jQueryAjax。下面的代码将告诉您我尝试了什么。我的问题是,我不知道如何将我的请求发送到action类并获得响应。对于struts,我使用成员变量作为请求,使用taglib作为响应;像s:property val 动作类Java 以JSP形式动态填充数据(struts),java,jquery,ajax,jsp,struts2,Java,Jquery,Ajax,Jsp,Struts2,我的要求:我有一个选择和3个文本框的形式。当我从选择中选择特定选项时。我需要进入动作类,它将击中DB并获得三个字符串。必须在3个文本框中动态填充这3个字符串 我的问题是:我是J2EE新手,这将是我第一次尝试使用STRUTS2和jQueryAjax。下面的代码将告诉您我尝试了什么。我的问题是,我不知道如何将我的请求发送到action类并获得响应。对于struts,我使用成员变量作为请求,使用taglib作为响应;像s:property val 动作类 package com.zayn.wsrdet
package com.zayn.wsrdetails;
public class SelectProjectAction {
private String data1;
private String data2;
private String data3;
private String proj;
public String execute()
{
System.out.println("Hey dude Execute runs");
String tempVal2=getProj();
String check="Project1";
if(proj.equals(check))
{
setData1("ID191");
setData2("DG");
setData3("100PDS");
}
System.out.print(tempVal2);
return "Success";
}
}
StrutsXML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="ProjectSelect" extends="struts-default">
<action name="Project" class="com.zayn.wsrdetails.SelectProjectAction">
<result name="Success">/MainPage.jsp</result>
</action>
</package>
</struts>
JSP页面
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<title>WSR</title>
<script src="jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
$("#prj_change").change(function(){
var optionSelected = $("option:selected", this).val();
alert ("change event occured with value: " + optionSelected);
$.ajax({
url:'Project',
data:optionSelected,
success: function(response){
alert ("change event occured with value: " + optionSelected);
}
});
});
});
</script>
</head>
<body>
<form action="Project" method="post">
<select id="prj_change">
<option value="None">None</option>
<option value="Project1">Project1</option>
<option value="Project2">Project2</option>
<option value="Project3">Project3</option>
</select>
<label> Project id :</label><input type="text" name="data1" id="data1"></input><br>
<label> Project Lead :</label><input type="text" name="data2" id="data2"></input><br>
<label> Project length :</label><input type="text" name="data3" id="data3"></input><br>
</form>
</body>
</html>
请让我知道如何在此处继续您也可以通过这种方式传递值
$.ajax({
url:"Project",
data: {"proj" : "optionSelected"},
.............................
});
获取值后,只需设置为textfield
$("#prj_change").change(function(){
var optionSelected = $("option:selected", this).val();
alert ("change event occured with value: " + optionSelected);
if(){
$.ajax({
url:"Project?proj=optionSelected",
success: function(response){
alert ("change event occured with value: " + optionSelected);
$("#date1").val(<s:property value="data1"/>);
$("#date2").val(<s:property value="data2"/>);
$("#date3").val(<s:property value="data3"/>);
}
});
}else{
slert("you are selected NONE");
}
});
为此,您可以使用简单的json方法。我的网站上有完整的示例和代码。请参阅 步骤1:您需要做的第一件事是对select标记进行onchange方法调用,该方法将转到javascript并获取数据。在这里,您将从select标记接收数据,并将其传递给步骤2中的操作 步骤2:在该javascript方法中,您需要与action类交互以获取数据。 使用重定向方法,在url中传递参数,您可以在此处执行此操作。此外,如果您想向action发送多个值,则可以通过表单名称或表单id获取这些值,并使用javascript提交该表单 步骤3:您将获得javascript中的数据,现在通过使用javascript创建一个select标记或使用方法从js显示/隐藏div并在第二个select标记中设置这些值,将其返回到jsp页面 此外,如果希望javascript从java获取数据,也可以使用DWR
流程将是这样的…我建议您遵循此流程,这样您就可以学习成为一名新手;这不会用data1、2、3的值填充文本框,因为您没有value属性。因此,请使用setattribute方法。