如何将数据从JSP页面发送到Action类?

如何将数据从JSP页面发送到Action类?,jsp,struts2,Jsp,Struts2,我有两个操作类,即loginAction和EditUserAction类。Login操作类包含一个对象的arraylist,这些对象在JSP页面中迭代,即View User页面 这是me LoginAction.java { 包posidex.Demo.UAM; 导入java.io.FileInputStream; 导入java.io.IOException; 导入java.sql.Connection; 导入java.sql.PreparedStatement; 导入java.sql.Resu

我有两个操作类,即loginAction和EditUserAction类。Login操作类包含一个对象的arraylist,这些对象在JSP页面中迭代,即View User页面

这是me LoginAction.java {

包posidex.Demo.UAM;
导入java.io.FileInputStream;
导入java.io.IOException;
导入java.sql.Connection;
导入java.sql.PreparedStatement;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.util.ArrayList;
导入java.util.Properties;
导入org.apache.logging.log4j.LogManager;
导入org.apache.logging.log4j.Logger;
导入org.apache.struts2.dispatcher.SessionMap;
导入posidex.Demo.DAO.DataModel;
导入posidex.Demo.DAO.GetDBCOnnection;
导入posidex.Demo.DAO.SessionBase;
公共类登录扩展了SessionBase{
连接conn=null;
Properties readFile=新属性();
FileInputStream fileStream=null;
结果集记录集=null;
DataModel resultModel=null;
PreparedStatement for结果=null;
SessionMap loginMap=null;
ArrayList=新建ArrayList();
公共ArrayList getList(){
退货清单;
}
公共无效集合列表(ArrayList列表){
this.list=列表;
}
Logger log=LogManager.getLogger(LoginAction.class);
公共字符串getDbDetails(){
试一试{
debug(“内部getDbDetails方法”);
fileStream=新文件输入流(
“/home/ast developer/NewWorkspace/User Access Management/src/Database.properties”);
load(fileStream);
conn=GetDBCOnnection.GetDBCOnnection();
如果(conn!=null){
forResult=conn.prepareStatement(readFile.getProperty(“db.selectQuery”);
recordSet=forResult.executeQuery();
}
if(记录集!=null){
while(recordSet.next()){
resultModel=新数据模型();
resultModel.setUserId(recordSet.getInt(1));
resultModel.setFirstName(recordSet.getString(2));
resultModel.setLastName(recordSet.getString(3));
resultModel.setEmailId(recordSet.getString(4));
resultModel.setUserRole(recordSet.getString(5));
resultModel.setUserPhone(recordSet.getLong(6));
resultModel.setUserStatus(recordSet.getString(7));
list.add(resultModel);
}
loginMap=getSession();
loginMap.put(“mylist”,列表);
设置会话(登录映射);
}
}catch(IOException | SQLException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}最后{
试一试{
fileStream.close();
康涅狄格州关闭();
forResult.close();
recordSet.close();
}catch(SQLException | IOException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
返回“成功”;
}
}
}

这是视图用户JSP {


查看用户页面
活跃的
暂停的
用户ID
名字
姓
电子邮件Id
角色
接触
地位
行动
}

这是JSP的最新版本。 !(file:///home/ast-developer/Pictures/Screenshot%20from%202017-09-21%2010:20:33.png) 正如您所看到的,对象值的arraylist是使用JSP打印的。JSP有一个针对每个用户详细信息的提交按钮,该按钮调用一个操作。我想捕获该特定用户的用户ID,该用户的按钮被单击以传递给editAction类。我如何做到这一点?


<html>
<body>
<script>
    function abc()
    {
        var xhttp=new XMLHttpRequest();
        xhttp.onreadystatechange=function(){
        if(this.status=200 && this.readyState==4)
        {
            document.getElementById("divi").innerHTML=this.responseText;
        }   
    };
    xhttp.open('GET','abc.txt',true);
    xhttp.send();
}
</script>
<div id="divi">
    <h1>AJAX CHANGE MAGIC</h1>
    <input type="button" value="click me for magic" onclick="abc()"/>
</div>

</body>
</html>
函数abc() { var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.status=200&&this.readyState=4) { document.getElementById(“divi”).innerHTML=this.responseText; } }; xhttp.open('GET','abc.txt',true); xhttp.send(); } AJAX改变魔术
您可以通过表单提交或Ajax请求(或者从技术上讲,类似WebSocket的东西)从客户端发送数据。这些是您的基本选项——具体问题是什么?您可以使用诸如
editAction.action?userId=“TEST”
之类的查询参数调用ajax并发送数据,然后在action类中执行
request.getParameter(“userId”)
获取从前端传递的用户ID值。@DaveNewton我已经添加了JSP页面的快照。正如您所看到的,每个用户都有一个E按钮。这个按钮有一个action类,我将在其中编辑我存储在loginAction类的ArrayList中的详细信息,并使用相同的列表在JSP上显示它们。出于编辑目的,我在EditAction类中使用相同的ArrayList,方法是实现SessionAware并将该列表放在EditUser类可访问的映射中。我需要根据特定用户的用户ID搜索ArrayList,我需要从JSP页面传递该用户ID,这是我无法做到的。请帮助?可能重复的样本Ajax调用谢谢…但我正在寻找一些不使用此…如使用qu
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>
<!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=UTF-8">
<title>View User Page</title>
</head>
<body>
    <s:form action="createUser" method="post" id="options">
        <div id="outer div"
            style="width: 180px; display: inline-block; margin: 2px">
            <select
                style="width: 150px; vertical-align: top; height: 30px; margin: 1px"
                name="user_Status" id="status_List">
                <option selected>Active</option>
                <option>Suspended</option>
            </select>
        </div>
        <div style="display: inline-block; margin: 1px">
            <div>
                <s:submit
                    style="width: 150px; align: left; height: 30px; margin:1px"
                    value="Create User"></s:submit>
            </div>
        </div>
    </s:form>

    <s:form action="editUser" method="post">

        <div id="results" style="border: solid 1px #444; margin: 3px">

            <table>

                <tr>
                    <td>User ID</td>
                    <td>First Name</td>
                    <td>Last Name</td>
                    <td>Email Id</td>
                    <td>Role</td>
                    <td>Contact</td>
                    <td>Status</td>
                    <td>Action</td>

                </tr>
                <s:iterator value="list">
                    <tr>
                        <td><s:property value="userId"></s:property></td>
                        <td><s:property value="firstName"></s:property></td>
                        <td><s:property value="lastName"></s:property></td>
                        <td><s:property value="emailId"></s:property></td>
                        <td><s:property value="userRole"></s:property></td>
                        <td><s:property value="userPhone"></s:property></td>
                        <td><s:property value="userStatus"></s:property></td>
                        <td><s:url value="EditUserAction.action" var="url">
                                <s:param name="userId" value="userID" />
                            </s:url> <s:a href="%{url}">
                                <s:submit value="E" />
                            </s:a></td>

                    </tr>
                </s:iterator>
            </table>
        </div>

    </s:form>
</body>
</html>
<html>
<body>
<script>
    function abc()
    {
        var xhttp=new XMLHttpRequest();
        xhttp.onreadystatechange=function(){
        if(this.status=200 && this.readyState==4)
        {
            document.getElementById("divi").innerHTML=this.responseText;
        }   
    };
    xhttp.open('GET','abc.txt',true);
    xhttp.send();
}
</script>
<div id="divi">
    <h1>AJAX CHANGE MAGIC</h1>
    <input type="button" value="click me for magic" onclick="abc()"/>
</div>

</body>
</html>