1、前端弹窗中点击配置邮箱,再次弹出弹窗进行配置邮箱,邮箱输入框可以动态的增加和删除, 2、点击保存按钮,对输入的多个邮箱进行保存,点击取消则不保存,3、保存成功后在弹窗中回显邮箱信息, 并且java后端怎么接收前端配置的邮箱,通过easyui和ssm实现,前后端具体代码设计
时间: 2024-03-17 19:40:30 浏览: 76
好的,我看到你的问题了,既然你已经提供了需求,那么我们就来实现这个功能吧。
首先,我们需要在前端页面中添加一个按钮,点击该按钮可以弹出配置邮箱的弹窗。弹窗中包含一个输入框和两个按钮:增加和删除。点击增加按钮可以动态添加一个输入框,点击删除按钮可以删除最后一个输入框。在弹窗底部添加一个保存按钮和一个取消按钮。点击保存按钮,可以将所有输入框中的邮箱保存到后台数据库中。点击取消按钮,弹窗关闭,不进行保存操作。
前端代码如下:
```html
<!-- 弹窗 -->
<div id="emailDialog" class="easyui-dialog" title="配置邮箱" style="width: 400px; height: auto; padding: 10px;"
closed="true" buttons="#emailDialogButtons">
<div class="email-item">
<input class="easyui-textbox" type="text" name="emails[]" style="width: 90%;" data-options="required: true, validType: 'email'">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="addEmail()">增加</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeEmail()">删除</a>
</div>
</div>
<!-- 弹窗底部按钮 -->
<div id="emailDialogButtons">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-save" onclick="saveEmails()">保存</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="cancelEmails()">取消</a>
</div>
```
```javascript
// 增加一个输入框
function addEmail() {
var html = '<div class="email-item">' +
'<input class="easyui-textbox" type="text" name="emails[]" style="width: 90%;" data-options="required: true, validType: \'email\'">' +
'<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="addEmail()">增加</a>' +
'<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="removeEmail()">删除</a>' +
'</div>';
$('#emailDialog').append(html);
}
// 删除最后一个输入框
function removeEmail() {
var items = $('.email-item');
if (items.length > 1) {
items.last().remove();
}
}
// 保存所有邮箱
function saveEmails() {
var emails = [];
$('input[name="emails[]"]').each(function () {
emails.push($(this).val());
});
$.ajax({
type: 'POST',
url: '/saveEmails',
data: JSON.stringify(emails),
contentType: 'application/json',
success: function (result) {
if (result.status === 'success') {
$.messager.alert('提示', '保存成功!');
// 在弹窗中回显邮箱信息
$('#emailText').textbox('setValue', emails.join(','));
$('#emailDialog').dialog('close');
} else {
$.messager.alert('提示', result.message, 'error');
}
}
});
}
// 取消配置邮箱
function cancelEmails() {
$('#emailDialog').dialog('close');
}
```
然后,在后台Java代码中实现接收前端传递的邮箱信息,使用SpringMVC框架可以轻松实现。我们只需要在Controller中添加一个接口,接收前端传递的邮箱数组即可。接收到邮箱后,我们可以将它保存到数据库中,返回一个JSON格式的结果,表示保存成功或失败。
后端代码如下:
```java
@Controller
public class EmailController {
@Autowired
private EmailService emailService;
@ResponseBody
@RequestMapping(value = "/saveEmails", method = RequestMethod.POST)
public Map<String, String> saveEmails(@RequestBody List<String> emails) {
Map<String, String> result = new HashMap<>();
try {
emailService.saveEmails(emails);
result.put("status", "success");
} catch (Exception e) {
result.put("status", "fail");
result.put("message", "保存失败!");
}
return result;
}
}
```
这里我们使用了@ResponseBody注解将结果直接返回给前端。
最后,我们还需要在页面中添加一个文本框,用来回显配置的邮箱信息。当保存成功后,在弹窗中回显邮箱信息。代码如下:
```html
<input id="emailText" class="easyui-textbox" type="text" name="emailText" style="width: 90%;" readonly>
```
以上就是前后端代码的设计了。我们使用了EasyUI和jQuery实现了邮箱配置的弹窗,使用SpringMVC框架完成了后台Java代码的编写。如果你需要使用数据库保存邮箱信息,还需要在Service中添加保存邮箱的方法。希望对你有所帮助。
阅读全文