- Tạo ứng dụng Spring Boot bằng Spring Launchizr
- Cấu hình Cassandra trong Spring Boot
- Định cấu hình nhóm kết nối Tomcat trên Spring Boot
- Định tuyến tin nhắn Camel đến Artemis được nhúng bằng WildFly
Tôi nhớ rằng khi chúng tôi cùng gỡ lỗi giao diện với các đồng nghiệp front-end, SpringMVC back-end cần nhận các tham số loại mảng, sau đó thông báo cho front-end rằng loại mảng cần được chuyển qua. Sau đó, giày trẻ em mặt trước đã vượt qua mảng, nhưng mặt sau nhận được không thành công và việc gỡ lỗi chung không thành công. Lúc đó mình chưa nghiên cứu kỹ khía cạnh này do hạn chế về thời gian nên mình đã nghĩ ra cách chuyển một chuỗi json sang front end, sau đó back end nhận chuỗi json và chuyển đổi thành chuỗi bắt buộc. đối tượng mảng. Đây rõ ràng không phải là một cách tiếp cận tốt. Chúng tôi đã không sử dụng những gì khung đã làm cho mình và nó cũng yêu cầu thêm hai lần chuyển đổi dữ liệu. Vì vậy hôm nay mình đã dành chút thời gian nghiên cứu và tổng hợp lại data bind của springMVC.
Nghĩa là, một số kiểu dữ liệu cơ bản gốc java bao gồm các lớp đóng gói và kiểu Chuỗi của chúng. Tương đối đơn giản, hãy chọn kiểu Boolean để giải thích.
Mã kiểm tra:
@RequestMapping(value = "test") @ResponseBody public Object testDataBind(@RequestParam(name = "test") Boolean test) { System.out.println(test);
Sử dụng công cụ đưa thư để gửi yêu cầu:
Đầu ra của bảng điều khiển:
đúng1
Điều này tương đối đơn giản và không có nhiều điều để nói. **Ở đây cần lưu ý rằng nếu tham số không được chú thích bằng @RequestParam thì tên của tham số mặc định test phải được sử dụng làm tên của tham số. Nếu không có chú thích thì giao diện người dùng không cần chuyển thông số này. tham số khi gửi yêu cầu http và sẽ không có lỗi nào được báo cáo. Tuy nhiên, nếu chú thích này được thêm vào và thuộc tính chú thích require = false không được đặt thì tham số này phải được chuyển, nếu không sẽ báo lỗi 400. Nếu thuộc tính tên được chỉ định trong chú thích, giao diện người dùng tên cần sử dụng giá trị của tên làm tên tham số giao diện người dùng. Nếu thuộc tính tên không được chỉ định, thì kiểm tra tên tham số sẽ được sử dụng làm tham số giao diện người dùng. tên. **Bạn có thể xác minh từng cái một.
Có hai tình huống:
Mã giao diện:
@RequestMapping(value = "test") @ResponseBody public Object testDataBind(String[] test) { System.out.println(tests[0] + " " + test[1]); trả về "thành công";
Kiểu truyền tham số giao diện người dùng này cần phải tuân theo một định dạng nhất định.
name="tests" value="arony1" name="tests" value="arony2"12
người đưa thư gửi yêu cầu:
Đầu ra của bảng điều khiển:
arony1 arony21
dữ liệu:{"tests://arony1,arony2"}1
Điều đáng lưu ý là nếu các tham số phương thức springMVC phía sau được nhận bằng cách sử dụng một mảng và giao diện người dùng sử dụng ajax để gửi yêu cầu thì các tham số chỉ có thể được chuyển theo định dạng trên, sử dụng các bài kiểm tra [0], các bài kiểm tra [1] được đề cập dưới đây là không thể truyền tham số.
người đưa thư gửi yêu cầu:
Đầu ra của bảng điều khiển:
arony1 arony21
Mã giao diện:
@RequestMapping(value = "test") @ResponseBody đối tượng công khai testDataBind(Person Person) { System.out.println(person.getTests()[0] + " " + Person.getTests()[1]); "; }
Người:
lớp công khai Person { chuỗi riêng tư [] các bài kiểm tra; chuỗi công khai [] getTests() { trả về các bài kiểm tra; } public void setTests(String[] test) { this.tests = test;
Có hai hình thức để truyền giá trị
name="tests" value="arony1" name="tests" value="arony2"12 name="tests[0]" value="arony1" name="tests[1]" value="arony2"12
người đưa thư gửi yêu cầu:
Đầu ra của bảng điều khiển:
arony1 arony21
Ajax cũng có hai cách để truyền giá trị:
dữ liệu:{"tests"arony1,arony2"}1 dữ liệu:{"tests[0]""arony1","tests[1]"arony2"}1
Hiệu quả hoàn toàn giống như hình thức.
Trước tiên, hãy xác định loại Người dùng tùy chỉnh, bao gồm các thuộc tính sau và tạo các phương thức get/set cũng như các phương thức toString:
id số nguyên riêng tư; tên đăng nhập chuỗi riêng tư;12
Mã giao diện:
@RequestMapping(value = "test") @ResponseBody đối tượng công khai testDataBind(Người dùng) { System.out.println(user); trả về "thành công";
người đưa thư gửi yêu cầu:
Đầu ra của bảng điều khiển:
Người dùng{id=1, loginname='arony'}1
Như bạn có thể thấy,Các tham số có cùng tên với thuộc tính Người dùng có thể được đối tượng Người dùng chấp nhận nếu một giá trị được truyền. Nếu không có giá trị nào được truyền, giá trị mặc định sẽ được sử dụng.
Hãy thử và thêm chú thích @RequestParam cho người dùng tham số. Sử dụng người đưa thư để gửi yêu cầu và bạn sẽ thấy rằng 400 được trả lại. Vì vậy chúng ta cần hiểu ý nghĩa của chú thích @RequestParam, nó chỉ ra rằng tham số của phương thức chấp nhận tham số http. Do đó, nếu bạn sử dụng một đối tượng tùy chỉnh làm tham số thì đừng thêm @RequestParam trước, vì SpringMVC không thể chuyển đổi các tham số đã nhận thành đối tượng User khi phân tích tham số người dùng của yêu cầu http.
Lưu ý: Trong trường hợp này, chỉ có thể sử dụng một lớp tùy chỉnh để bao bọc mảng/danh sách.
Xác định một lớp tham số khác:
lớp công khai Tham số { người riêng tư[] người; người công khai[] getPerson() { người trả lại; } public void setPerson(Person[] người) { this.person = người;
Người:
lớp công khai Person { các bài kiểm tra chuỗi riêng tư; chuỗi công khai getTests() { trả về các bài kiểm tra; } public void setTests(Các bài kiểm tra chuỗi) { this.tests = test;
Mã giao diện:
@RequestMapping(value = "test") @ResponseBody đối tượng công khai testDataBind(Tham số tham số) { System.out.println(parameter.getPerson()[0].getTests() + " " + tham số.getPerson()[1]. getTests()); trả về "thành công";
name="person[0].tests" value="arony1" name="person[1].tests" value="arony2"12
data:{"person[0].tests:"arony1","person[1].tests"arony2"}1
người đưa thư gửi yêu cầu:
Đầu ra của bảng điều khiển:
arony1 arony21
<
Chuỗi, kiểu cơ bản>
Tương tự như trên Trong trường hợp này, chỉ có thể sử dụng một lớp tùy chỉnh để bao bọc bản đồ.
tham số:
lớp công khai Tham số { Bản đồ riêng bản đồ; Bản đồ công khai getMap() { return map; } public void setMap(Map map) { this.map = map;
Mã giao diện:
@RequestMapping(value = "test") @ResponseBody đối tượng công khai testDataBind(Tham số tham số) { tham số.getMap().forEach((key, value) -> { System.out.println(key + " " + value); } ); trả về "thành công";
Định dạng truyền tham số mặt trước:
name="map[key1]" value="arony1" name="map[key2]" value="arony2" hoặc name="map.key1" value="arony1" name="map.key2" value="arony2 "12345
data:{"map[key1]://arony1","map[key2]://arony2"} hoặc dữ liệu:{"map.key1://arony1","map.key2"arony2"}123
người đưa thư gửi yêu cầu:
Đầu ra của bảng điều khiển:
key1 arony1 key2 arony212
<
Chuỗi, lớp tùy chỉnh>
Nó rất giống với 5.
tham số:
lớp công khai Tham số { Bản đồ riêng tư bản đồ; Bản đồ công khai getMap() { return map; } public void setMap(Map map) { this.map = map;
Người:
lớp công khai Person { các bài kiểm tra chuỗi riêng tư; chuỗi công khai getTests() { trả về các bài kiểm tra; } public void setTests(Các bài kiểm tra chuỗi) { this.tests = test;
Mã giao diện:
@RequestMapping(value = "test") @ResponseBody đối tượng công khai testDataBind(Tham số tham số) { tham số.getMap().forEach((key, value) -> { System.out.println(key + " " + value.getTests( )); }); trả về "thành công";
Định dạng truyền tham số mặt trước:
name="map[key1].tests" value="arony1" name="map[key2].test2" value="arony2"12
Lưu ý ở đây là không thể truyền các giá trị như name="map.key1.tests" value="arony1". Dấu ngoặc vuông là bắt buộc.
data={"map[key1].tests://arony1","map[key2].test2"arony2"}1
Dấu ngoặc vuông cũng phải được sử dụng ở đây.
Sử dụng người đưa thư để gửi yêu cầu:
Đầu ra của bảng điều khiển:
key1 arony1 key2 arony212
Liên kết tham số SpringMVC ở trên có thể được tóm tắt như hình sau:
Trong đó, Bản đồ<
Chuỗi, ①>
Giao diện người dùng cũng có thể sử dụng "." thay vì dấu ngoặc vuông.
Tóm lại: Tôi muốn trích xuất các tùy chọn khác nhau từ các tham số mẫu biến đổi, nhưng không chỉ theo nhãn mà còn theo chỉ mục của các tham số đó, là các nhãn không xác định. Tôi thích các phương thức tăng cường (chẳng hạn như chiến lược heap hoặc lockfree), nhưng muốn làm cho nó tương thích với S
Tôi có thể cung cấp một số trợ giúp về câu lệnh IF excel trong ô không? Nó đang làm gì vậy? Đánh giá nào đã được thực hiện trên "BaselineAmount"? =IF(Số tiền cơ sở, (Phương sai/Baselin
Tôi đang sử dụng phương pháp sau: public async Task Save(Foo foo,out int param) { ....... MySqlParameter prmparamID
Tôi đang sử dụng CodeGear RAD Studio IDE. Để kiểm tra ứng dụng của tôi với các tham số dòng lệnh, tôi đã sử dụng trường Tham số trong menu Chạy->Tham số nhiều lần. Nhưng mỗi lần tôi cho nó một giá trị mới, nó lại không thể kéo xuống từ mức
Tôi đã viết một số mã cho loại thẻ tín dụng, dán bên dưới. Tôi có một hàm tạo chấp nhận các biến trên và đang xem xét một số cách để định dạng các biến này thành chuỗi để đầu ra cuối cùng sẽ giống như Số: 1234 5678 9012 3456 Hạn chót:
Tham số MySql IN - Giá trị tham số VarChar IN có yêu cầu dấu ngoặc đơn khi được sử dụng trong quy trình được lưu trữ không? Tôi đã tạo mã ASP cổ điển như thường lệ nhưng tôi không cập nhật cột. Tôi có cần trích dẫn các thông số VarChar không?
Bắt đầu như bên dưới nhưng dường như không thể tìm ra cách hoàn thành nó. Về cơ bản, nếu tôi gọi myTest([one, Two, Three], 2); thì nó sẽ trả về phần tử thứ ba. Phải sử dụng vòng lặp for để tìm giải pháp của tôi. chức năng
Khi truyền 1113355579999 làm tham số, giá trị sẽ trở thành 959050335 bên trong hàm. Gọi (main.c): printf("%d\n", FindCommonDigit(111335557999
Câu hỏi này đã có câu trả lời ở đây: Java là "pass-by-reference" hay "pass-by-value" (92 câu trả lời) Đã đóng 9 năm trước. lớp công khai StackOve
Tôi thực sự bối rối, khi một cái gì đó như 1 == scanf("%lg", &entry) được đổi chỗ cho scanf("%lg", &entry) == 1 thì không có gì khác biệt. Cuốn sách thí nghiệm của tôi nói vế trước, nhưng tôi nghĩ vế sau có thể hiểu được. 1 =
Tôi đang cố gắng sử dụng Delphi 7 bằng cách sử dụng hàm gọi SetupDiGetDeviceRegistryProperty. Cuộc gọi đến từ hàm ví dụ SetupEnumAvailableComPorts. Nó trông như thế này:
Tôi cần triển khai hiển thị một số sự kiện trên dự án hiện có. Tôi không thể thay đổi cấu trúc cơ sở dữ liệu. Trong Bộ điều khiển của tôi, tôi đang chuyển dấu thời gian (từ yêu cầu ajax) và tôi cần hiển thị 8 sự kiện trước đó. Vì vậy, nếu dấu thời gian là (sau khi chuyển đổi)
Mới đối với đường ray. Theo hướng dẫn về liên kết đa hình, tôi đã tìm thấy điều này để đặt @client trong việc tạo và hủy. @client = Client.find(params[:client_id] || p
Tôi có thể chạy chương trình Java -Xms256M thông qua Eclipse bằng cách đặt tham số VM thành -Xmx1024m. Bây giờ tôi muốn chạy cùng một chương trình Java (jar) thông qua tệp .bat trong Windows
Tôi có một DLL Delphi hoạt động khi được ứng dụng Delphi gọi và xuất một phương thức được khai báo là: Thủ tục ProduceOutput(request,inputs:widestring; va
Sau khi xem qua tài liệu và ví dụ, tôi vẫn chưa tìm ra chính xác các tham số trong tệp lược đồ.yaml được sử dụng ở đâu. Sử dụng mẫu mã AWS tại đây: https://github.com/aws-samples/aws-proton
Tham số chương trình: thủ tục get_user_profile ( i_attuid trong ras_user.attuid%type, i_data_group trong data_g
Tôi có một chuỗi được truyền dưới dạng tham số cho quy trình được lưu trữ của mình. dim AgentString as String = " 'test1', 'test2', 'test3' " Tôi muốn sử dụng khai báo tham số này trong IN. VÀ
Câu hỏi này đã có câu trả lời: Khi nào tôi nên sử dụng "this" trong lớp học? (17 câu trả lời) Đã đóng 6 năm trước. Tôi đã chạy một số mã java và tôi thấy có điều gì đó mà tôi không hiểu lắm. Tại sao?
Tôi gõ cuộn (0,10,200,10); nhưng khi chạy nó chuyển chuỗi "xxpos" hoặc "yypos", tôi đã thử mà không có dấu nháy đơn nhưng nó không hoạt động. cuộn = hàm (xp
Tôi là một lập trình viên xuất sắc, rất giỏi!