structs2 คืออะไร? มันพัฒนาขึ้นบนพื้นฐานของ struts1 และเป็นกรอบของโหมด MVC ในความเป็นจริงฟังก์ชั่นของมันง่ายมากซึ่งคือการแยกมุมมองและเลเยอร์การประมวลผลแบบลอจิคัล ฉันไม่มีความสามารถและมีความรู้ในระดับต่ำ ฉันเคยใช้สปริงเพื่อทำโครงการ ตั้งแต่ฉันกำลังจะจบการศึกษาฉันต้องเปลี่ยนอาชีพ (สมมติว่า) บริษัท ใช้เฟรมเวิร์ก Structs ไม่มีทางดังนั้นฉันจึงสามารถเรียนรู้ได้ตั้งแต่เริ่มต้น!
ซอฟต์แวร์ที่จำเป็น - Eclipse, Tomcat 7.0, struts -2.3.1.2 (ดาวน์โหลดซอร์สโค้ดด้วยตัวเอง) ต่อไปนี้เป็นโครงการขนาดเล็กที่เฉพาะเจาะจงที่จะอธิบาย
ก่อนอื่นหลักการทำงานของ struts2: ก่อนอื่น Tomcat จะแยกวิเคราะห์ URL ที่ป้อนโดยผู้ใช้แยกชื่อโครงการออกจากนั้นโปรแกรมจะมองหาโครงการที่เริ่มต้นจากนั้นไปที่ไฟล์กำหนดค่า web.xml โดยตรงและค้นหาไฟล์การกำหนดค่าของไฟล์ที่ใช้งานอยู่ เนมสเปซจากนั้นข้ามไปยังอินเทอร์เฟซการกระทำที่ผู้ใช้ต้องการ
บางทีมันอาจจะลำบากกว่าที่จะเห็นข้างต้นดังนั้นลองใช้โครงการขนาดเล็กทั่วไปเพื่อแสดงให้เห็น:
1. Open Eclipse (โปรดทราบว่า Eclipse นี้ไม่ใช่คลาสสิก แต่เป็นเวอร์ชัน IDE ที่ดาวน์โหลดซึ่งสะดวกมากสำหรับการพัฒนาเว็บ) สร้างโครงการเว็บใหม่และระวังให้ทำตามวิธีต่อไป ด้วยวิธีนี้คุณสามารถเลือกรายการ web.xml ในขั้นตอนสุดท้ายกำจัดขั้นตอนการเพิ่มด้วยตนเอง
2. เพิ่มแพ็คเกจ JAR, คลายซิปแพ็คเกจซอร์สโค้ด structs ที่ดาวน์โหลดจากนั้นเพิ่มแพ็คเกจ JAR ที่คุณใช้ในไฟล์ LIB และเพิ่มโฟลเดอร์ LIB ภายใต้ WebContent-Web-INF
3. เพิ่มไฟล์ struts.xml ไฟล์ struts.xml ที่ง่ายที่สุดอยู่ในแอพซอร์สโค้ด Struts ที่ดาวน์โหลด คุณสามารถค้นหาได้จากมันหรือคุณสามารถเขียนด้วยตัวเองด้วยวิธีต่อไปนี้ (ง่ายที่สุด) และนำมันลงในไดเรกทอรีรากของ SRC โดยตรง:
คัดลอกรหัสรหัสดังนี้: <? xml version = "1.0" encoding = "utf-8"?>?>
<! doctype struts สาธารณะ
"-// Apache Software Foundation // DTD Struts Configuration 2.0 // en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name = "struts.devmode" value = "true" />>
<package name = "front" namespace = "/" exted = "struts-default">
<action name = "index">
<name result = "success">/index.jsp </result>
</action>
</pack>
</struts>
เรามาอธิบายเนื้อหาข้างต้น: struts.devmode ในบรรทัด 6 ได้รับการกำหนดค่าให้ใช้โหมดการพัฒนา โหมดการพัฒนาหมายความว่าการปรับเปลี่ยนแบบไดนามิกสามารถแสดงให้เห็นได้แบบไดนามิกโดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ มันเป็นเท็จโดยค่าเริ่มต้น; แพ็คเกจในบรรทัดที่ 7 เป็นเหมือนแพ็คเกจ Java ที่ใช้สำหรับการจำแนกประเภท เนมสเปซมีความสำคัญมากและใช้ในการแยก URL ดังที่ได้กล่าวไว้ข้างต้น URL ที่จะเปิดคือ: ...... / ดัชนีโดยที่ / แสดงถึง namepcae และดัชนีแสดงถึงแอตทริบิวต์ชื่อของการกระทำ คลาสในการดำเนินการเป็นคลาสที่ใช้สำหรับการประมวลผลเชิงตรรกะของคลาส Java สามัญ ผลลัพธ์คืออินเทอร์เฟซ JSP (View) ที่ถ่ายโอนไปและอินเตอร์เฟส JSP ด้านบนจะถูกวางไว้ในไดเรกทอรีรูทของเว็บคอนตินท์
4. เขียน Java class-Action02 สร้างแพ็คเกจใหม่ com.myservice.web จากนั้นสร้าง Java Class Action02 ใหม่ เนื้อหานั้นง่ายมาก
การคัดลอกรหัสมีดังนี้: แพ็คเกจ com.myservice.web;
นำเข้า com.opensymphony.xwork2.actionsupport;
คลาสสาธารณะ Action02 ขยาย Actionsupport {
@Override
String Public Execute () โยนข้อยกเว้น {
// todo วิธีการที่สร้างขึ้นอัตโนมัติสตับ
กลับ "ความสำเร็จ";
-
-
มันคือการแทนที่วิธีการดำเนินการและส่งคืนความสำเร็จของสตริงโดยตรงซึ่งสอดคล้องกับแอตทริบิวต์ผลลัพธ์ในการดำเนินการ
มีสองวิธีอื่น ๆ ที่สามารถทำให้ฟังก์ชั่นของชั้นเรียนสมบูรณ์ แต่ไม่ได้ใช้บ่อย หนึ่งคือการไม่สืบทอดคลาสและอินเทอร์เฟซใด ๆ และเขียนวิธีการดำเนินการโดยตรงซึ่งยังส่งคืนสตริง อีกอย่างคือการเขียนคลาสเพื่อใช้งานอินเทอร์เฟซการดำเนินการแล้วเขียนทับวิธีการดำเนินการของการกระทำ ในความเป็นจริง Actionsupport ยังใช้อินเทอร์เฟซการกระทำ แต่ยังใช้วิธีการอื่น ๆ อีกมากมายซึ่งสามารถใช้งานได้อย่างสะดวก ดังนั้นในการพัฒนาวิธีการสืบทอดคลาส Actionsupport จึงถูกนำมาใช้
5. เขียนไฟล์ JSP และสร้างไฟล์ JSP ใหม่ในไดเรกทอรีรูทของเว็บคอนท์เตอร์ โปรดทราบว่าควรตั้งค่าภาษาเป็น UTF-8 เช่น:
คัดลอกรหัสดังนี้: <%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8"
pageencoding = "utf-8"%>
<! doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv = "content-type" content = "text/html; charset = utf-8">
<title> myweb02 </title>
</head>
<body>
<H1> พรุ่งนี้และพรุ่งนี้มีกี่วันพรุ่งนี้ </h1>
</body>
</html>
ผ่านงานด้านบนการเขียนที่ง่ายที่สุดเสร็จสมบูรณ์แล้วคุณสามารถเริ่มเซิร์ฟเวอร์ (TomCat7.0) และป้อน http: // localhost: 8080/xxx/index ในเบราว์เซอร์โดยที่ XXX แสดงชื่อโครงการ