คำถามติดแท็ก spring-mvc

เฟรมเวิร์กสำหรับการสร้างเว็บแอ็พพลิเคชัน Java ตามรูปแบบ Model-View-Controller (MVC) มันส่งเสริมรหัสที่ยืดหยุ่นและแยกได้จากเทคโนโลยีมุมมองพื้นฐาน

3
จะเข้าถึงข้อมูลส่วนหัว HTTP ในคอนโทรลเลอร์ Spring MVC REST ได้อย่างไร
ฉันใหม่กับการเขียนโปรแกรมเว็บโดยทั่วไปโดยเฉพาะใน Java ดังนั้นฉันเพิ่งเรียนรู้ว่าส่วนหัวและร่างกายคืออะไร ฉันกำลังเขียนบริการ RESTful โดยใช้ Spring MVC ฉันสามารถสร้างบริการที่เรียบง่ายด้วย@RequestMappingในตัวควบคุมของฉัน ฉันต้องการความช่วยเหลือในการทำความเข้าใจวิธีรับข้อมูลส่วนหัว HTTP จากคำขอที่มาถึงวิธีการของฉันในส่วนควบคุมบริการ REST ของฉัน ฉันต้องการแยกวิเคราะห์ส่วนหัวและรับคุณลักษณะบางอย่างจากมัน คุณช่วยอธิบายได้อย่างไรว่าฉันจะไปรับข้อมูลนั้น


4
ความแตกต่างระหว่าง JAX-RS และ Spring Rest
ฉันสับสนกับความแตกต่างระหว่างJAX-RS (ดีอาจจะควรใช้ย์จะทำเปรียบเทียบตั้งแต่ JAX-RS เป็นข้อมูลจำเพาะแค่) และฤดูใบไม้ผลิสำหรับการให้บริการพักผ่อน ฉันพยายามค้นหาข้อมูลเพิ่มเติมทางออนไลน์และเกิดความสับสนมากขึ้น บริษัท ของฉันใช้ Spring MVC เพื่อพัฒนา Restful API ส่วนที่ทำให้เกิดความสับสนคือ JAX-RS ย่อมาจากJava API สำหรับ RESTful Web Servicesในฤดูใบไม้ผลิฉันยังใช้ java เพื่อพัฒนา RESTful Web Services ดังนั้นฉันจึงไม่ได้รับความแตกต่าง Spring เป็นไปตามข้อกำหนด JAX-RS หรือไม่ จากสิ่งที่ฉันรู้จนถึงตอนนี้: JAX-RS เป็นพิมพ์เขียว / ข้อกำหนดมี Jersey, RESTeasy และอื่น ๆ เป็นการนำไปใช้งาน

8
ชื่อผู้ใช้และรหัสผ่านคืออะไรเมื่อเริ่มต้น Spring Boot ด้วย Tomcat
เมื่อฉันปรับใช้แอปพลิเคชัน Spring ผ่าน Spring Boot และการเข้าถึงlocalhost:8080ฉันต้องตรวจสอบสิทธิ์ แต่ชื่อผู้ใช้และรหัสผ่านคืออะไรฉันจะตั้งค่าได้อย่างไร ฉันพยายามที่จะเพิ่มลงในtomcat-usersไฟล์ของฉันแต่มันไม่ทำงาน: <role rolename="manager-gui"/> <user username="admin" password="admin" roles="manager-gui"/> นี่คือจุดเริ่มต้นของแอปพลิเคชัน: @SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } } และนี่คือการพึ่งพา Tomcat: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> ฉันจะตรวจสอบความถูกต้องได้localhost:8080อย่างไร

11
Spring MVC - วิธีคืนค่าสตริงธรรมดาเป็น JSON ใน Rest Controller
คำถามของฉันคือการติดตามนี้คำถาม @RestController public class TestController { @RequestMapping("/getString") public String getString() { return "Hello World"; } } ในข้างต้น Spring จะเพิ่ม "Hello World" ลงในเนื้อหาตอบกลับ ฉันจะส่งคืนสตริงเป็นการตอบสนอง JSON ได้อย่างไร ฉันเข้าใจว่าฉันสามารถเพิ่มคำพูดได้ แต่มันให้ความรู้สึกเหมือนแฮ็คมากกว่า โปรดยกตัวอย่างเพื่อช่วยอธิบายแนวคิดนี้ หมายเหตุ:ฉันไม่ต้องการให้สิ่งนี้เขียนตรงไปยังเนื้อหาการตอบสนองของ HTTP ฉันต้องการส่งคืน String ในรูปแบบ JSON (ฉันใช้ตัวควบคุมของฉันกับRestyGWTซึ่งต้องการให้การตอบกลับอยู่ในรูปแบบ JSON ที่ถูกต้อง)
146 java  json  spring  rest  spring-mvc 

14
Spring MVC: จะส่งคืนรูปภาพใน @ResponseBody ได้อย่างไร
ฉันได้รับข้อมูลภาพ (ตามbyte[]) จากฐานข้อมูล จะคืนรูปภาพนี้ได้@ResponseBodyอย่างไร? แก้ไข ฉันทำได้โดยไม่@ResponseBodyใช้HttpServletResponseพารามิเตอร์ method: @RequestMapping("/photo1") public void photo(HttpServletResponse response) throws IOException { response.setContentType("image/jpeg"); InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg"); IOUtils.copy(in, response.getOutputStream()); } การใช้งาน@ResponseBodyร่วมกับorg.springframework.http.converter.ByteArrayHttpMessageConverterตัวแปลงที่ลงทะเบียนเป็น @Sid กล่าวว่าใช้งานไม่ได้สำหรับฉัน :( @ResponseBody @RequestMapping("/photo2") public byte[] testphoto() throws IOException { InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg"); return IOUtils.toByteArray(in); }
142 spring-mvc 

16
Spring MVC @PathVariable ถูกตัดทอน
ฉันมีตัวควบคุมที่ให้การเข้าถึงข้อมูลสงบ: @RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}") public ModelAndView getBlah(@PathVariable String blahName, HttpServletRequest request, HttpServletResponse response) { ปัญหาที่ฉันพบคือถ้าฉันไปที่เซิร์ฟเวอร์ด้วยตัวแปรพา ธ ที่มีอักขระพิเศษมันจะถูกตัดทอน ตัวอย่างเช่น: http: // localhost: 8080 / blah-server / blah / get / blah2010.08.19-02: 25: 47 พารามิเตอร์ blahName จะเป็น blah2010.08 อย่างไรก็ตามการเรียกร้องให้ request.getRequestURI () มีข้อมูลทั้งหมดที่ส่งผ่าน มีความคิดใดที่จะป้องกันไม่ให้ Spring ตัดทอน @PathVariable
142 java  spring  rest  spring-mvc  get 

7
เมื่อใดที่ฉันใช้พา ธ พารามิเตอร์เทียบกับพารามิเตอร์คิวรีใน RESTful API
ฉันต้องการให้ RESTful API ของฉันสามารถคาดเดาได้มาก แนวทางปฏิบัติที่ดีที่สุดในการตัดสินใจว่าเมื่อใดควรแบ่งกลุ่มข้อมูลโดยใช้ URI แทนที่จะใช้พารามิเตอร์แบบสอบถาม มันสมเหตุสมผลแล้วสำหรับฉันที่พารามิเตอร์ระบบที่รองรับการแบ่งหน้าการเรียงลำดับและการจัดกลุ่มอยู่หลังเครื่องหมาย '?' แต่ช่องต่างๆเช่น "สถานะ" และ "ภูมิภาค" หรือแอตทริบิวต์อื่น ๆ ที่แบ่งกลุ่มคอลเล็กชันของคุณล่ะ ถ้าสิ่งเหล่านี้จะต้องเป็นพารามิเตอร์การสืบค้นด้วยเช่นกันกฎง่ายๆในการรู้ว่าเมื่อใดควรใช้พา ธ พารามิเตอร์?

10
Spring 3 RequestMapping: รับค่าพา ธ
มีวิธีรับค่าเส้นทางที่สมบูรณ์หลังจากrequestMapping @PathVariableแยกวิเคราะห์ค่าแล้วหรือไม่ นั่นคือ: /{id}/{restOfTheUrl}ควรจะสามารถที่จะแยก/1/dir1/dir2/file.htmlออกเป็นid=1และrestOfTheUrl=/dir1/dir2/file.html ความคิดใด ๆ ที่จะได้รับการชื่นชม


5
Autowiring ถั่วสองตัวที่ใช้อินเทอร์เฟซเดียวกัน - วิธีตั้งค่า bean เริ่มต้นเป็น autowire อัตโนมัติอย่างไร
พื้นหลัง: ฉันมีแอปพลิเคชัน Spring 2.5 / Java / Tomcat มีถั่วต่อไปนี้ซึ่งใช้ทั่วทั้งแอปพลิเคชั่นในหลาย ๆ ที่ public class HibernateDeviceDao implements DeviceDao และถั่วต่อไปนี้ซึ่งเป็นของใหม่: public class JdbcDeviceDao implements DeviceDao bean แรกถูกกำหนดค่าให้ดังนั้น (beans ทั้งหมดในแพ็คเกจถูกรวมไว้) <context:component-scan base-package="com.initech.service.dao.hibernate" /> ถั่วที่สอง (ใหม่) ถูกกำหนดค่าแยกกัน <bean id="jdbcDeviceDao" class="com.initech.service.dao.jdbc.JdbcDeviceDao"> <property name="dataSource" ref="jdbcDataSource"> </bean> ผลลัพธ์นี้ (แน่นอน) มีข้อยกเว้นเมื่อเริ่มต้นเซิร์ฟเวอร์: ข้อยกเว้นแบบซ้อนคือ org.springframework.beans.factory.NoSuchBeanDefinitionException: ไม่มีถั่วที่ไม่ซ้ำประเภท [com.sevenp.mobile.samplemgmt.service.dao.DeviceDao] พบถั่วที่จับคู่เดี่ยว แต่พบ 2: [deviceDao, …

15
วิธีอัปโหลดไฟล์และข้อมูล JSON ในบุรุษไปรษณีย์
ฉันใช้ Spring MVC และนี่คือวิธีของฉัน: /** * Upload single file using Spring Controller. */ @RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public @ResponseBody ResponseEntity<GenericResponseVO<? extends IServiceVO>> uploadFileHandler( @RequestParam("name") String name, @RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) { if (!file.isEmpty()) { try { byte[] bytes = file.getBytes(); // Creating the directory to …
138 java  json  spring-mvc  postman 

15
ฤดูใบไม้ผลิ - ไม่มี EntityManager ที่มีการทำธุรกรรมจริงสำหรับเธรดปัจจุบัน - ไม่สามารถดำเนินการเรียก 'คงอยู่' ได้อย่างน่าเชื่อถือ
ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเรียกใช้วิธี "คงอยู่" เพื่อบันทึกโมเดลเอนทิตีลงในฐานข้อมูลในเว็บแอปพลิเคชัน Spring MVC ของฉัน ไม่พบโพสต์หรือหน้าใด ๆ ในอินเทอร์เน็ตที่สามารถเกี่ยวข้องกับข้อผิดพลาดนี้โดยเฉพาะ ดูเหมือนว่ามีบางอย่างผิดปกติกับ EntityManagerFactory bean แต่ฉันค่อนข้างใหม่ในการเขียนโปรแกรม Spring ดังนั้นสำหรับฉันดูเหมือนว่าทุกอย่างจะเริ่มต้นได้ดีและอ้างอิงจากบทความการสอนต่างๆในเว็บ มอบหมายงาน-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository-1.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd"> <context:component-scan base-package="wymysl.Controllers" /> <jpa:repositories base-package="wymysl.repositories"/> <context:component-scan base-package="wymysl.beans" /> <context:component-scan base-package="wymysl.Validators" …

7
จะส่งคืนอะไรหากวิธีการควบคุม Spring MVC ไม่คืนค่า
ฉันใช้ jQuery $.getJSON()เพื่อโทรแบบอะซิงโครนัสไปยังแบ็กเอนด์ Spring MVC ของฉัน วิธีการควบคุม Spring ส่วนใหญ่มีลักษณะดังนี้: @RequestMapping(value = "/someURL", method = RequestMethod.POST) public @ResponseBody SomePOJO getSomeData(@ModelAttribute Widget widget, @RequestParam("type") String type) { return someDAO.getSomeData(widget, type); } ฉันมีการตั้งค่าสิ่งต่างๆเพื่อให้คอนโทรลเลอร์แต่ละตัวส่งคืน@ResponseBodyเป็น JSON ซึ่งเป็นสิ่งที่ฝั่งไคลเอ็นต์คาดหวัง แต่จะเกิดอะไรขึ้นเมื่อคำขอไม่ควรส่งคืนเนื้อหาใด ๆ ไปยังฝั่งไคลเอ็นต์ ฉันสามารถมี: @RequestMapping(value = "/updateSomeData" method = RequestMethod.POST) public @ResponseBody void updateDataThatDoesntRequireClientToBeNotified(...) { ... } ถ้าไม่ไวยากรณ์ที่เหมาะสมที่จะใช้ที่นี่คืออะไร?
137 java  jquery  spring-mvc 

17
Spring boot - ไม่ใช่ประเภทที่มีการจัดการ
ฉันใช้ Spring boot + JPA และมีปัญหาขณะเริ่มบริการ Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.nervytech.dialer.domain.PhoneSettings at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219) at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:68) at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:89) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:69) at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:177) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562) นี่คือไฟล์ Application.java @Configuration @ComponentScan @EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class }) @SpringBootApplication public …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.