wpydaguan 2014-11-11 08:49 采纳率: 0%
浏览 755

jsp文件名与struts2的Action方法名关联冲突问题

jsp命名与struts2的Action方法名关联冲突问题

问题描述如下:
1、jsp命名为:fortuneWayPoints.jsp,文件中只有一行显示文字。
2、Struts的Action配置为:

/jsp/kefu/lieyanzhetian/fortuneWayPoints.jsp

playerLogAction中方法有:
public String initFortuneWayPoints(){
return "fort";
}
public String getFortuneWayPoints(){
return "fortuneWayPoint";
}
3、在进入fortuneWayPoints.jsp页面调用playerLogAction的初始化方法initFortuneWayPoints时,在初始化方法return返回时会自动调用getFortuneWayPoints()方法。

个人认为解决思路:
初步认为与struts框架有关,action方法名与jsp文件名有关联,get+jsp文件名,会被struts2框架自动调用。
是否有知道struts内部规则和命名约定是怎样的。

请各路高手指点

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 02:11
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由JSP(JavaServer Pages)和Struts2(Struts framework)之间的命名约定引起的。在JSP中,jsp文件的名称通常以“_”字符结尾,并且它们必须使用小写。例如,如果一个jsp文件名为“fortuneWayPoints”,那么它的路径应该像这样:“/jsp/kefu/lieyanzhetian/fortuneWayPoints.jsp”。

    而在Struts2中,它有一个叫做“action”的概念,用于处理请求和响应。每个Action都由一个唯一的名称来标识。这个名称被称为“method name”。例如,“initFortuneWayPoints”就是Action的一个方法名。

    当用户访问包含此方法名的URL时,Struts2会尝试将这个URL中的“method name”替换为实际的方法名称,然后调用这个方法。因此,如果你的jsp文件的名称是“fortuneWayPoints”,而你的Struts2 Action的方法名称是“initFortuneWayPoints”,那么当用户访问包含这两个名称的URL时,Struts2就会调用initFortuneWayPoints方法。

    要解决这个问题,你可以修改你的jsp文件的名称,使其不包含“_”字符,或者直接指定Action的方法名。例如,你可以在jsp文件中添加以下内容:

    <%@ page language="java" contentType="text/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>Test</title>
    </head>
    <body>
    <p>这是你的内容。</p>
    </body>
    </html>
    

    然后在你的Struts2 Action中,你应该提供一个方法来处理这个URL,而不是使用“initFortuneWayPoints”。例如:

    public class FortuneWayPointsAction implements Action {
    
        @Override
        public void execute(ActionContext actionContext) throws Exception {
            // 在这里执行你的业务逻辑
        }
    }
    

    这将确保你在处理请求时不会调用initFortuneWayPoints方法。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀