写一个多人聊天对话框的前端页面,要求使用Springboot+thymeleaf+jquery,不使用WebSocket
时间: 2023-12-14 16:36:46 浏览: 150
好的,以下是一个简单的多人聊天对话框的前端页面示例,使用Spring Boot作为后端框架,Thymeleaf作为模板引擎,jQuery作为前端框架,不使用WebSocket。
HTML部分:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>多人聊天室</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script th:src="@{/js/chat.js}"></script>
<link rel="stylesheet" th:href="@{/css/chat.css}" />
</head>
<body>
<div class="chat-container">
<div class="chat-header">
<h1>多人聊天室</h1>
</div>
<div class="chat-body">
<div class="chat-messages">
<ul id="messages"></ul>
</div>
<div class="chat-input">
<input id="message" type="text" placeholder="输入消息...">
<button id="send-btn">发送</button>
</div>
</div>
</div>
</body>
</html>
```
CSS部分:
```css
.chat-container {
display: flex;
flex-direction: column;
height: 100vh;
width: 100vw;
}
.chat-header {
text-align: center;
font-size: 24px;
padding: 10px;
}
.chat-body {
display: flex;
flex-direction: column;
flex: 1;
overflow-y: scroll;
padding: 10px;
}
.chat-messages {
flex: 1;
overflow-y: scroll;
}
.chat-messages li {
margin-bottom: 10px;
}
.chat-input {
display: flex;
margin-top: 10px;
}
.chat-input input {
flex: 1;
margin-right: 10px;
}
.chat-input button {
padding: 5px 10px;
border: none;
background-color: #007bff;
color: #fff;
cursor: pointer;
}
.chat-input button:hover {
background-color: #0069d9;
}
```
JavaScript部分:
```javascript
$(function() {
var username = prompt("请输入您的昵称:");
var socket = new WebSocket("ws://" + location.host + "/chat");
socket.onopen = function() {
socket.send(JSON.stringify({
type: "join",
username: username
}));
};
socket.onmessage = function(event) {
var message = JSON.parse(event.data);
handleMessage(message);
};
$("#send-btn").click(function() {
var message = $("#message").val();
if (message.trim() != "") {
socket.send(JSON.stringify({
type: "message",
username: username,
message: message
}));
$("#message").val("");
}
});
function handleMessage(message) {
if (message.type == "message") {
var msgElement = $("<li>").text(message.username + ": " + message.message);
$("#messages").append(msgElement);
$(".chat-body").scrollTop($(".chat-body")[0].scrollHeight);
} else if (message.type == "join") {
var joinElement = $("<li class='join-msg'>").text(message.username + " 加入了聊天室");
$("#messages").append(joinElement);
$(".chat-body").scrollTop($(".chat-body")[0].scrollHeight);
} else if (message.type == "leave") {
var leaveElement = $("<li class='leave-msg'>").text(message.username + " 离开了聊天室");
$("#messages").append(leaveElement);
$(".chat-body").scrollTop($(".chat-body")[0].scrollHeight);
}
}
});
```
以上代码实现了一个简单的多人聊天室的前端页面,使用Thymeleaf作为模板引擎,jQuery作为前端框架,不使用WebSocket。后端代码需要实现一个WebSocket处理器来处理WebSocket连接和消息的收发。
阅读全文