通过研究参考应用程序和阅读手册,我对Spring WebFlow 2.1的第一印象.在进一步讨论之前,我想问一下这个社区的印象.
实际上,我计划我的网站只包含一个网页.应该通过异步更新所有内容(登录/注销,添加元素等).通讯.然而,我对Spring WebFlow的第一印象是它粘合了连续网页的流,而不是它们的片段.
因此,有两个问题:
提前致谢
我有一个需要提供二进制内容(图像)的JSF 1.2/Spring Web flow 2.0.7应用程序.此内容作为Base64编码的字符串从Web服务(以及其他一些数据)中获取,并最终在bean中与其余数据一起结束.如何在我的网页上显示图像?
注意:不,没有办法让Web服务直接传输数据,甚至没有其他所有东西从Web服务中获取二进制数据.
我正在将Spring Web Flow集成到Spring MVC Web应用程序中.
我将Spring映射DispatcherServlet到*.html下面.
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我已经注册了简单的流(/WEB-INF/flows/simple/simple-flow.xml,/WEB-INF/flows/simple/simple.jsp),simple根据配置获取id.
<webflow:flow-registry id="flowRegistry" base-path="/WEB-INF/flows">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry>
Run Code Online (Sandbox Code Playgroud)
我将/simple.html(/WEB-INF/pages/simple.jsp)映射到我的MVC控制器.
@Controller
public class SimpleController {
@RequestMapping("/simple.html")
public String simpleHandler(Model model) {
return "simple";
}
}
Run Code Online (Sandbox Code Playgroud)
当我请求时simple.html,SimpleController获取该请求,但是当我删除到该控制器的映射时,simple.html会导致simple流动.我看到MVC控制器具有更高的优先级并在它到达流量控制器之前得到请求.其结果是什么?在那种情况下它是如何工作的?我可以更改普通MVC控制器和Web Flow控制器的请求处理顺序/优先级吗?
我正在使用Spring WebFlow和Spring MVC.当我请求页面例如http://localhost:8080/testapp/index.html?param=100WebFlow重定向http://localhost:8080/testapp/index.html?execution=e3s1并且无法进入paramjsp时,param丢失了某个地方.如何使这个工作?
这种情况的另一个例子 - Spring Security配置如下:
<security:form-login authentication-failure-url="/login.html?loginfail=1" login-page="/login.html" />
Run Code Online (Sandbox Code Playgroud)
登录失败时,我无法获取loginfail参数login.jsp.
<c:if test="${!empty param.loginfail}">Login error!</c:if>
Run Code Online (Sandbox Code Playgroud)
我可以访问流中的请求参数,但是......我是否必须为我的所有请求参数设置view/flowScope变量,如下所示?
<set name="viewScope.loginfail" value="requestParameters.loginfail" />
Run Code Online (Sandbox Code Playgroud) 我的要求是快速,轻松地开发丰富的Web应用程序,并且框架必须易于/兼容像IceFaces这样的Spring
我对IceFaces/PrimeFaces感到困惑,或者使用带有YUI/DWR的jsp
请建议我.
spring rich-internet-application spring-mvc java-ee spring-webflow
通常,Spring webflow配置从application-context.xml以下位置导入:
<?xml version="1.0" encoding="UTF-8"?>
<beans .../>
....
<import resource="config/webflow-config.xml" />
</beans>
Run Code Online (Sandbox Code Playgroud)
但是在3.1版本中,可以从Java执行所有配置@Configuration并摆脱它application-context.xml.
我的网络配置有以下内容:
@Configuration
@Import({ MyConfig1.class, MyConfig2.class })
public class WebConfig extends WebMvcConfigurerAdapter {
...
}
Run Code Online (Sandbox Code Playgroud)
是否有可能摆脱webflow-config.xml使用@Configuration?如果有,怎么样?如果不是,如何让我的网络配置包括在内webflow-config.xml?
为什么我会收到Log4J 1.2.17的警告?我试图在我的java项目中使用log4j,但我一直收到以下警告.有谁能告诉我为什么?
警告:
log4j:WARN Continuable parsing error 2 and column 87
log4j:WARN Document root element "log4j:configuration", must match DOCTYPE root "null".
log4j:WARN Continuable parsing error 2 and column 87
log4j:WARN Document is invalid: no grammar found.
Run Code Online (Sandbox Code Playgroud)
我的log4j.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j = "http://jakarta.apache.org/log4j/" debug = "false">
<appender name = "FILE" class = "org.apache.log4j.RollingFileAppender">
<param name = "File" value = "test.log"/>
<param name = "MaxFileSize" value = "5MB"/>
<param name = "MaxBackupIndex" value = "50"/>
<layout class = "org.apache.log4j.PatternLayout">
<param …Run Code Online (Sandbox Code Playgroud) 在我的Spring Web流程中,我有一个FlowScope名为"action" 的变量,我想在验证方法中检查这个变量;
\\\\\\
if(action=="copy"){
doCopy;
}else{
doOther;
}
\\\\\\\
Run Code Online (Sandbox Code Playgroud)
但我不知道如何调用"动作"变量.请帮我.
我正在尝试设置Maven,JSF和Primefaces项目.但是,当我运行该项目时,我得到以下错误
com.sun.faces.config.ConfigurationException:
Source Document: jar:file:/D:/Personal%20Work/eclipse%2032%20Bit/workspace/Java%20EE
/Spring/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps
/ch18_SpringWebFlowAndJSF/WEB-INF/lib/primefaces-3.5.jar!/META-INF/faces-config.xml
Cause: Class 'org.primefaces.component.fileupload.FileUploadRenderer' is missing
a runtime dependency: java.lang.NoClassDefFoundError: org/apache/commons/fileupload
/FileItem
Run Code Online (Sandbox Code Playgroud)
这是我的POM片段
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.2.3.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.7.5</org.slf4j-version>
<jsf-version>2.2.0</jsf-version>
</properties>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-faces</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${jsf-version}</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${jsf-version}</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.5</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
为什么我收到此错误?
谢谢
这个问题让我抓狂.
我有以下视图状态:
<on-start>
<evaluate expression="new com.zxxztech.zecure.services.webflow.FormularioConfirmacionCorreo()"
result="flowScope.ccForm" />
</on-start>
<view-state id="activacionManual" model="ccForm" >
<transition on="enviar" to="resultado" bind="true">
<evaluate expression="usersManager.activarUsuario(ccForm.correo, ccForm.codigo)"
result="flowScope.resultado" />
</transition>
<transition on="cancelar" to="cancelar" validate="false" bind="false" />
</view-state>
Run Code Online (Sandbox Code Playgroud)
这就是Validation类:
@Component
public class FormularioConfirmacionCorreoValidator {
@Autowired
private UsersManager usersManager;
public void validateActivacionManual(FormularioConfirmacionCorreo ccForm, ValidationContext validContext) {
...
[Validation logic]
}
public UsersManager getUsersManager() {
return usersManager;
}
public void setUsersManager(UsersManager usersManager) {
this.usersManager = usersManager;
}
}
Run Code Online (Sandbox Code Playgroud)
当表单被提交时,webflow直接执行<evaluate>标记,而不调用验证方法.
我不知道我能做错什么.
编辑:
这是activacionManual.jsp文件:
...
<form:form cssClass="ym-form" modelAttribute="ccf" method="post" action="${flowExecutionUrl}"> …Run Code Online (Sandbox Code Playgroud) spring-webflow ×10
spring ×5
java ×4
spring-mvc ×3
ajax ×1
annotations ×1
java-ee ×1
jsf ×1
jsf-2 ×1
jsp ×1
log4j ×1
maven-3 ×1
primefaces ×1
streaming ×1
validation ×1