sách gpt4 ai đã đi

Giải quyết vấn đề cắt bớt các ký tự đặc biệt của @PathVariable

In lại Tác giả:qq735679552 Thời gian cập nhật: 2022-09-29 22:32:09 46 4
mua khóa gpt4 Nike

CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.

Bài đăng trên blog CFSDN này giải quyết vấn đề cắt bớt @PathVariable cho các ký tự đặc biệt. Bài đăng được tác giả thu thập và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Tổng quan:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
@Phản hồi cơ thể
  @Yêu cầu lập bản đồ (giá trị= "/download/{tên tệp:[a-zA-Z0-9\\.\\-\\_]+}" , phương thức = RequestMethod.GET)
  công cộng vô hiệu downloadAmr(yêu cầu HttpServletRequest, phản hồi HttpServletResponse, @Biến Đường Dẫn ( "tên tệp" ) Chuỗi fileName) {
  phản hồi.setContentType( "ứng dụng/octet-stream" );
  Chuỗi dir = System.getProperty( "catalina.home" ); //Lấy đường dẫn làm việc của tomcat
  Hệ thống.out.println( "đường dẫn tomcat=" + đạo diễn);
  //Lấy đường dẫn tệp filedir.properties lưu trữ vị trí lưu trữ tệp
  Chuỗi dir2 = dir.substring( 0 , dir.length()) + File.separator + "ứng dụng web" + File.separator + "GỐC" + File.separator + fileName;
  Tập tin tập tin = mới Tập tin(dir2);
  Dòng đầu ra ByteArray byteArrayOutputStream = mới Dòng đầu ra ByteArray();
  byte [] bộ đệm = mới byte [ 1024 ];
  số nguyên len;
  thử {
  Dòng đầu vào Dòng đầu vào = mới FileInputStream(tệp);
  trong khi ((len = inputStream.read(bộ đệm)) > - 1 ) {
  byteArrayOutputStream.write(bộ đệm, 0 , len);
  }
  byteArrayOutputStream. flush();
  phản hồi.getOutputStream().write(byteArrayOutputStream.toByteArray());
  } nắm lấy (FileNotFoundException e) {
  logger. lỗi( "Ngoại lệ đọc tệp" , đ);
  } nắm lấy (IOException e) {
  logger.error(e.getMessage(), e);
  }
  logger. thông tin( "Tải xuống và nhập..." );
  }

Tóm tắt:

1. Theo mặc định, /download/{fileName}, sau đó là @PathVariable("fileName").

Nếu đường dẫn là /download/1.jpg, thì fileName=1 thay vì 1.jpg. Vấn đề là các ký tự ._- bị cắt bớt theo mặc định.

2. Giải pháp là.

{tên tệp:[a-zA-Z0-9\\.\\-\\_]+} .

Sử dụng biểu thức chính quy để chỉ ra rằng các ký tự này không thể bị cắt bớt.

Bổ sung: Springboot sử dụng @PathVariable để truyền tham số và tham số cuối cùng sẽ mất phần sau dấu thập phân.

Khi sử dụng @PathVariable để truyền tham số đường dẫn, người ta phát hiện ra rằng phần sau dấu thập phân của tham số cuối cùng bị thiếu, như được hiển thị trong đoạn mã sau:

Phương pháp Controller được chú thích như sau:

?
1
@Yêu cầu lập bản đồ (giá trị = "/người dùng/tìm mật khẩu/{email}" , phương thức = RequestMethod.GET, tạo ra = "ứng dụng/json" )

Tôi muốn gửi email ở đây, nhưng sau đó tôi phát hiện ra rằng không có hậu tố email.

Tôi không thể hiểu được nên đã tìm kiếm trên Baidu và thấy giải pháp như sau:

?
1
@Yêu cầu lập bản đồ (giá trị = "/người dùng/tìm mật khẩu/{email:.+}" , phương thức = RequestMethod.GET, tạo ra = "ứng dụng/json" )

Thêm dấu hai chấm, dấu thập phân và dấu cộng sau tham số: {email:.+}.

Trên đây là kinh nghiệm cá nhân của tôi, hy vọng có thể cung cấp cho bạn một tài liệu tham khảo. Tôi cũng hy vọng bạn sẽ ủng hộ tôi. Nếu có bất kỳ sai sót hoặc cân nhắc nào chưa đầy đủ, xin vui lòng cho tôi biết.

Liên kết gốc: https://blog.csdn.net/m0_37355951/article/details/77113621.

Cuối cùng, bài viết này về giải quyết vấn đề cắt bớt ký tự đặc biệt của @PathVariable kết thúc tại đây. Nếu bạn muốn biết thêm về giải quyết vấn đề cắt bớt ký tự đặc biệt của @PathVariable, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

46 4 0
qq735679552
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com